diff options
Diffstat (limited to 'lib/libdisk/blocks.c')
| -rw-r--r-- | lib/libdisk/blocks.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/libdisk/blocks.c b/lib/libdisk/blocks.c index a63067500b90..682a54b9cba6 100644 --- a/lib/libdisk/blocks.c +++ b/lib/libdisk/blocks.c @@ -19,6 +19,7 @@ void * read_block(int fd, daddr_t block, u_long sector_size) { void *foo; + int i; foo = malloc(sector_size); if (!foo) @@ -27,7 +28,8 @@ read_block(int fd, daddr_t block, u_long sector_size) free (foo); return NULL; } - if (sector_size != read(fd, foo, sector_size)) { + i = read(fd, foo, sector_size); + if ((int)sector_size != i) { free (foo); return NULL; } @@ -37,10 +39,12 @@ read_block(int fd, daddr_t block, u_long sector_size) int write_block(int fd, daddr_t block, const void *foo, u_long sector_size) { + int i; if (-1 == lseek(fd, (off_t)block * sector_size, SEEK_SET)) return -1; - if (sector_size != write(fd, foo, sector_size)) + i = write(fd, foo, sector_size); + if ((int)sector_size != i) return -1; return 0; } |
