summaryrefslogtreecommitdiff
path: root/lib/libdisk/blocks.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libdisk/blocks.c')
-rw-r--r--lib/libdisk/blocks.c8
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;
}