diff options
Diffstat (limited to 'libstore/task.c')
-rw-r--r-- | libstore/task.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libstore/task.c b/libstore/task.c index 4908ce5d..977cdc77 100644 --- a/libstore/task.c +++ b/libstore/task.c @@ -59,8 +59,14 @@ static error_t task_read (struct store *store, store_offset_t addr, size_t index, size_t amount, void **buf, size_t *len) { + error_t err; size_t bsize = store->block_size; - return vm_read (store->port, addr * bsize, amount, (vm_address_t *)buf, len); + mach_msg_type_number_t nread; + err = vm_read (store->port, addr * bsize, amount, (vm_address_t *) buf, &nread); + if (err) + return err; + *len = nread; + return 0; } static error_t |