warn_unused_result fixes
PATCH 1/1 warn_unused_result fixes
More fixes prompted by gcc's warn_unused_result, in the tools directory.
Note that some of the existing error checking for asprintf was wrong for Linux. asprintf in glibc returns -1 on error, but leaves the pointer uninitialized. Only the BSDs zero out the pointer on error.
Also, while fixing these warnings I saw several error paths that were incorrect. This patch minimally fixes the warn_unused_result; more complete error path cleanup will be a later patch.
Please apply to xen-unstable.
Signed-off-by Charles Coffing <[email protected]>
tools/blktap/drivers/blktapctrl.c +18 -9
@@ -143,7 +143,8 @@return -1 ; } -asprintf (&devname,"%s/%s%d" ,BLKTAP_DEV_DIR ,BLKTAP_DEV_NAME , *minor); +if (asprintf (&devname,"%s/%s%d" ,BLKTAP_DEV_DIR ,BLKTAP_DEV_NAME , *minor) ==-1 ) +return -1 ;make_blktap_dev (devname,*major,*minor); DPRINTF("Received device id %d and major %d, " "sent domid %d and be_id %d\n",
@@ -495,20 +496,27 @@if (!exist) {DPRINTF ("Process does not exist:\n" ); -asprintf (&rdctldev, -"%s/tapctrlread%d" ,BLKTAP_CTRL_DIR , minor); - blkif->fds[READ ] =open_ctrl_socket (rdctldev); - +if (asprintf (&rdctldev, +"%s/tapctrlread%d" ,BLKTAP_CTRL_DIR , minor) ==-1 ) +return -1 ; +if (asprintf (&wrctldev, +"%s/tapctrlwrite%d" ,BLKTAP_CTRL_DIR , minor) ==-1 ) { +free (rdctldev); +return -1 ; + } +if (asprintf (&cmd,"tapdisk %s %s" , wrctldev, rdctldev) ==-1 ) { +free (rdctldev); +free (wrctldev); +return -1 ; + } -asprintf (&wrctldev, -"%s/tapctrlwrite%d" ,BLKTAP_CTRL_DIR , minor); + blkif->fds[READ ] =open_ctrl_socket (rdctldev); blkif->fds[WRITE ] =open_ctrl_socket (wrctldev);if (blkif->fds[READ ] ==-1 || blkif->fds[WRITE ] ==-1 ) goto fail;/*launch the new process*/ -asprintf (&cmd,"tapdisk %s %s" , wrctldev, rdctldev);DPRINTF ("Launching process, CMDLINE [%s]\n" ,cmd);if (system (cmd) ==-1 ) {DPRINTF ("Unable to fork, cmdline: [%s]\n" ,cmd);
@@ -692,7 +700,8 @@register_new_unmap_hook (unmap_blktapctrl);/* Attach to blktap0 */ -asprintf (&devname,"%s/%s0" ,BLKTAP_DEV_DIR ,BLKTAP_DEV_NAME ); +if (asprintf (&devname,"%s/%s0" ,BLKTAP_DEV_DIR ,BLKTAP_DEV_NAME ) ==-1 ) + goto open_failed;if ((ret =xc_find_device_number ("blktap0" )) <0 ) {DPRINTF ("couldn't find device number for 'blktap0'\n" ); goto open_failed;
tools/blktap/drivers/block-qcow.c +5 -2
@@ -871,7 +871,10 @@ } s->fd = fd; -asprintf (&s->name,"%s" , name); +if (asprintf (&s->name,"%s" , name) ==-1 ) { +close (fd); +return -1 ; + }ASSERT (sizeof (QCowHeader) +sizeof (QCowHeader_ext) <512 );
@@ -1165,7 +1168,7 @@ offset =sizeof (QCowHeader) +sizeof (uint32_t );lseek (fd, offset,SEEK_SET ); out =cpu_to_be32 (cksum); -write (fd, &out,sizeof (uint32_t )); +if (write (fd, &out,sizeof (uint32_t ))) ;close (fd); }
tools/blktap/drivers/tapdisk.c +2 -1
@@ -220,7 +220,8 @@fd_list_entry_t *ptr;int page_size; -asprintf (&devname,"%s/%s%d" ,BLKTAP_DEV_DIR ,BLKTAP_DEV_NAME , minor); +if (asprintf (&devname,"%s/%s%d" ,BLKTAP_DEV_DIR ,BLKTAP_DEV_NAME , minor) ==-1 ) +return -1 ; tap_fd =open (devname,O_RDWR );if (tap_fd ==-1 ) {
tools/blktap/lib/xenbus.c +2 -4
@@ -360,8 +360,7 @@char *path;struct xenbus_watch *vbd_watch; -asprintf (&path,"/local/domain/%s/backend/tap" , domid); -if (path ==NULL ) +if (asprintf (&path,"/local/domain/%s/backend/tap" , domid) ==-1 )return -ENOMEM ; vbd_watch = (struct xenbus_watch *)malloc (sizeof (struct xenbus_watch ));
@@ -399,8 +398,7 @@struct xenbus_watch *domid_watch;char *path =NULL ; -asprintf (&path,"/local/domain" ); -if (path ==NULL ) +if (asprintf (&path,"/local/domain" ) ==-1 )return -ENOMEM ; domid_watch =malloc (sizeof (struct xenbus_watch ));
tools/blktap/lib/xs_api.c +22 -23
83 lines not on this page · raw message
tools/console/daemon/io.c +4 -1
@@ -303,7 +303,10 @@ void *result = va_arg(ap, void *);char *p; -asprintf (&path,"%s/%s" , dir, name); +if (asprintf (&path,"%s/%s" , dir, name) ==-1 ) { + ret =ENOMEM ; +break ; + } p =xs_read (xs,XBT_NULL , path,NULL );free (path);if (p ==NULL ) {
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel