diff options
author | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-05-24 14:07:40 +0100 |
---|---|---|
committer | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-05-24 14:07:40 +0100 |
commit | ecc82ca3e65191dca1bd7eacf4698cd81801f24e (patch) | |
tree | 8a41cc34ffe4420e2bff8727cbc977595a768c35 /tools/blktap | |
parent | 1c77b7cb9f97eeb025af6d38753b3917e026c4ee (diff) | |
download | xen-ecc82ca3e65191dca1bd7eacf4698cd81801f24e.tar.gz xen-ecc82ca3e65191dca1bd7eacf4698cd81801f24e.tar.bz2 xen-ecc82ca3e65191dca1bd7eacf4698cd81801f24e.zip |
blktap: Fix compile errors
When compiling the various blktap drivers with warnings cranked up, I
get errors that return values are not checked.
Signed-off-by: Charles Coffing <ccoffing@novell.com>
Diffstat (limited to 'tools/blktap')
-rw-r--r-- | tools/blktap/drivers/blktapctrl.c | 5 | ||||
-rw-r--r-- | tools/blktap/drivers/block-qcow.c | 9 | ||||
-rw-r--r-- | tools/blktap/drivers/block-vmdk.c | 5 |
3 files changed, 13 insertions, 6 deletions
diff --git a/tools/blktap/drivers/blktapctrl.c b/tools/blktap/drivers/blktapctrl.c index a0b2f349d0..aeec870af2 100644 --- a/tools/blktap/drivers/blktapctrl.c +++ b/tools/blktap/drivers/blktapctrl.c @@ -678,7 +678,10 @@ int main(int argc, char *argv[]) __init_blkif(); snprintf(buf, sizeof(buf), "BLKTAPCTRL[%d]", getpid()); openlog(buf, LOG_CONS|LOG_ODELAY, LOG_DAEMON); - daemon(0,0); + if (daemon(0,0)) { + DPRINTF("daemon failed (%d)\n", errno); + goto open_failed; + } print_drivers(); init_driver_list(); diff --git a/tools/blktap/drivers/block-qcow.c b/tools/blktap/drivers/block-qcow.c index 5eaf141758..a1fab17c55 100644 --- a/tools/blktap/drivers/block-qcow.c +++ b/tools/blktap/drivers/block-qcow.c @@ -745,7 +745,10 @@ found: } memcpy(tmp_ptr2, l2_ptr, 4096); lseek(s->fd, l2_offset + (l2_sector << 12), SEEK_SET); - write(s->fd, tmp_ptr2, 4096); + if (write(s->fd, tmp_ptr2, 4096) != 4096) { + free(tmp_ptr2); + return -1; + } free(tmp_ptr2); } return cluster_offset; @@ -1252,8 +1255,8 @@ int qcow_create(const char *filename, uint64_t total_size, strncpy(backing_filename, backing_file, sizeof(backing_filename)); } else { - realpath(backing_file, backing_filename); - if (stat(backing_filename, &st) != 0) { + if (realpath(backing_file, backing_filename) == NULL || + stat(backing_filename, &st) != 0) { return -1; } } diff --git a/tools/blktap/drivers/block-vmdk.c b/tools/blktap/drivers/block-vmdk.c index 4ab88373ea..f6b720e1e0 100644 --- a/tools/blktap/drivers/block-vmdk.c +++ b/tools/blktap/drivers/block-vmdk.c @@ -283,8 +283,9 @@ static uint64_t get_cluster_offset(struct tdvmdk_state *prv, if (!allocate) return 0; cluster_offset = lseek(prv->fd, 0, SEEK_END); - ftruncate(prv->fd, cluster_offset + - (prv->cluster_sectors << 9)); + if (ftruncate(prv->fd, cluster_offset + + (prv->cluster_sectors << 9))) + return 0; cluster_offset >>= 9; /* update L2 table */ tmp = cpu_to_le32(cluster_offset); |