From: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Matthew Daley <mattjd@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
xen-devel@lists.xen.org, Ian Campbell <Ian.Campbell@citrix.com>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Subject: Re: [PATCH v2] remove unnecessary null pointer checks before frees
Date: Mon, 30 Sep 2013 23:15:08 +0200 [thread overview]
Message-ID: <20130930211508.GN5376@type.youpi.perso.aquilenet.fr> (raw)
In-Reply-To: <1380425218-15403-1-git-send-email-mattjd@gmail.com>
Matthew Daley, le Sun 29 Sep 2013 16:26:58 +1300, a écrit :
> Oops, spatch removed an #if 0'd hunk from gtraceview.c. Here's a fixed version:
>
> -- 8< --
>
> Patch generated by the following semantic patch
> (http://coccinelle.lip6.fr/):
>
> @@
> expression *P;
> @@
>
> - if(P) free(P);
> + free(P);
>
> ...and then by filtering through the following command:
>
> filterdiff -p1 -x 'stubdom/*' -x 'tools/firmware/*' -x 'tools/qemu-*'
>
> Signed-off-by: Matthew Daley <mattjd@gmail.com>
Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
> ---
> extras/mini-os/blkfront.c | 14 ++++++-------
> extras/mini-os/console/xenbus.c | 8 +++----
> extras/mini-os/fbfront.c | 38 +++++++++++++++++-----------------
> extras/mini-os/kernel.c | 4 ++--
> extras/mini-os/lib/sys.c | 3 +--
> extras/mini-os/netfront.c | 18 ++++++++--------
> extras/mini-os/pcifront.c | 14 ++++++-------
> tools/blktap/drivers/blktapctrl.c | 6 ++----
> tools/blktap/drivers/tapaio.c | 18 ++++++----------
> tools/blktap/drivers/tapdisk.c | 9 +++-----
> tools/blktap/lib/xenbus.c | 21 +++++++------------
> tools/blktap/lib/xs_api.c | 3 +--
> tools/blktap2/control/tap-ctl-list.c | 6 ++----
> tools/blktap2/drivers/block-log.c | 3 +--
> tools/flask/utils/loadpolicy.c | 3 +--
> tools/libxc/xc_compression.c | 15 +++++---------
> tools/libxc/xc_core_x86.c | 6 ++----
> tools/libxc/xc_domain_save.c | 6 ++----
> tools/libxc/xc_gnttab.c | 3 +--
> tools/libxc/xc_offline_page.c | 9 +++-----
> tools/libxl/libxl_event.c | 3 +--
> tools/libxl/libxl_qmp.c | 6 ++----
> tools/libxl/libxl_utils.c | 2 +-
> tools/memshr/bidir-hash.c | 4 ++--
> tools/misc/gtraceview.c | 3 +--
> tools/tests/xen-access/xen-access.c | 6 ++----
> tools/xenbackendd/xenbackendd.c | 6 ++----
> 27 files changed, 96 insertions(+), 141 deletions(-)
>
> diff --git a/extras/mini-os/blkfront.c b/extras/mini-os/blkfront.c
> index aead6bd..62a32c5 100644
> --- a/extras/mini-os/blkfront.c
> +++ b/extras/mini-os/blkfront.c
> @@ -160,7 +160,7 @@ again:
>
>
> err = xenbus_transaction_end(xbt, 0, &retry);
> - if (err) free(err);
> + free(err);
> if (retry) {
> goto again;
> printk("completing transaction\n");
> @@ -271,7 +271,7 @@ void shutdown_blkfront(struct blkfront_dev *dev)
> state = xenbus_read_integer(path);
> while (err == NULL && state < XenbusStateClosing)
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
> - if (err) free(err);
> + free(err);
>
> if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateClosed)) != NULL) {
> printk("shutdown_blkfront: error changing state to %d: %s\n",
> @@ -281,7 +281,7 @@ void shutdown_blkfront(struct blkfront_dev *dev)
> state = xenbus_read_integer(path);
> while (state < XenbusStateClosed) {
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
> - if (err) free(err);
> + free(err);
> }
>
> if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateInitialising)) != NULL) {
> @@ -294,16 +294,16 @@ void shutdown_blkfront(struct blkfront_dev *dev)
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
>
> close:
> - if (err) free(err);
> + free(err);
> err2 = xenbus_unwatch_path_token(XBT_NIL, path, path);
> - if (err2) free(err2);
> + free(err2);
>
> snprintf(nodename, sizeof(nodename), "%s/ring-ref", dev->nodename);
> err2 = xenbus_rm(XBT_NIL, nodename);
> - if (err2) free(err2);
> + free(err2);
> snprintf(nodename, sizeof(nodename), "%s/event-channel", dev->nodename);
> err2 = xenbus_rm(XBT_NIL, nodename);
> - if (err2) free(err2);
> + free(err2);
>
> if (!err)
> free_blkfront(dev);
> diff --git a/extras/mini-os/console/xenbus.c b/extras/mini-os/console/xenbus.c
> index b317114..1c9a590 100644
> --- a/extras/mini-os/console/xenbus.c
> +++ b/extras/mini-os/console/xenbus.c
> @@ -32,7 +32,7 @@ void free_consfront(struct consfront_dev *dev)
> state = xenbus_read_integer(path);
> while (err == NULL && state < XenbusStateClosing)
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
> - if (err) free(err);
> + free(err);
>
> if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateClosed)) != NULL) {
> printk("free_consfront: error changing state to %d: %s\n",
> @@ -41,9 +41,9 @@ void free_consfront(struct consfront_dev *dev)
> }
>
> close:
> - if (err) free(err);
> + free(err);
> err = xenbus_unwatch_path_token(XBT_NIL, path, path);
> - if (err) free(err);
> + free(err);
>
> mask_evtchn(dev->evtchn);
> unbind_evtchn(dev->evtchn);
> @@ -134,7 +134,7 @@ again:
>
>
> err = xenbus_transaction_end(xbt, 0, &retry);
> - if (err) free(err);
> + free(err);
> if (retry) {
> goto again;
> printk("completing transaction\n");
> diff --git a/extras/mini-os/fbfront.c b/extras/mini-os/fbfront.c
> index a276193..1e01513 100644
> --- a/extras/mini-os/fbfront.c
> +++ b/extras/mini-os/fbfront.c
> @@ -131,7 +131,7 @@ again:
> }
>
> err = xenbus_transaction_end(xbt, 0, &retry);
> - if (err) free(err);
> + free(err);
> if (retry) {
> goto again;
> printk("completing transaction\n");
> @@ -171,7 +171,7 @@ done:
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
> if (state != XenbusStateConnected) {
> printk("backend not available, state=%d\n", state);
> - if (err) free(err);
> + free(err);
> err = xenbus_unwatch_path_token(XBT_NIL, path, path);
> goto error;
> }
> @@ -256,7 +256,7 @@ void shutdown_kbdfront(struct kbdfront_dev *dev)
> state = xenbus_read_integer(path);
> while (err == NULL && state < XenbusStateClosing)
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
> - if (err) free(err);
> + free(err);
>
> if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateClosed)) != NULL) {
> printk("shutdown_kbdfront: error changing state to %d: %s\n",
> @@ -266,7 +266,7 @@ void shutdown_kbdfront(struct kbdfront_dev *dev)
> state = xenbus_read_integer(path);
> while (state < XenbusStateClosed) {
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
> - if (err) free(err);
> + free(err);
> }
>
> if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateInitialising)) != NULL) {
> @@ -279,19 +279,19 @@ void shutdown_kbdfront(struct kbdfront_dev *dev)
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
>
> close_kbdfront:
> - if (err) free(err);
> + free(err);
> err2 = xenbus_unwatch_path_token(XBT_NIL, path, path);
> - if (err2) free(err2);
> + free(err2);
>
> snprintf(nodename, sizeof(nodename), "%s/page-ref", dev->nodename);
> err2 = xenbus_rm(XBT_NIL, nodename);
> - if (err2) free(err2);
> + free(err2);
> snprintf(nodename, sizeof(nodename), "%s/event-channel", dev->nodename);
> err2 = xenbus_rm(XBT_NIL, nodename);
> - if (err2) free(err2);
> + free(err2);
> snprintf(nodename, sizeof(nodename), "%s/request-abs-pointer", dev->nodename);
> err2 = xenbus_rm(XBT_NIL, nodename);
> - if (err2) free(err2);
> + free(err2);
>
> if (!err)
> free_kbdfront(dev);
> @@ -498,7 +498,7 @@ again:
> }
>
> err = xenbus_transaction_end(xbt, 0, &retry);
> - if (err) free(err);
> + free(err);
> if (retry) {
> goto again;
> printk("completing transaction\n");
> @@ -538,7 +538,7 @@ done:
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
> if (state != XenbusStateConnected) {
> printk("backend not available, state=%d\n", state);
> - if (err) free(err);
> + free(err);
> err = xenbus_unwatch_path_token(XBT_NIL, path, path);
> goto error;
> }
> @@ -654,7 +654,7 @@ void shutdown_fbfront(struct fbfront_dev *dev)
> state = xenbus_read_integer(path);
> while (err == NULL && state < XenbusStateClosing)
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
> - if (err) free(err);
> + free(err);
>
> if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateClosed)) != NULL) {
> printk("shutdown_fbfront: error changing state to %d: %s\n",
> @@ -664,7 +664,7 @@ void shutdown_fbfront(struct fbfront_dev *dev)
> state = xenbus_read_integer(path);
> if (state < XenbusStateClosed) {
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
> - if (err) free(err);
> + free(err);
> }
>
> if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateInitialising)) != NULL) {
> @@ -677,22 +677,22 @@ void shutdown_fbfront(struct fbfront_dev *dev)
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
>
> close_fbfront:
> - if (err) free(err);
> + free(err);
> err2 = xenbus_unwatch_path_token(XBT_NIL, path, path);
> - if (err2) free(err2);
> + free(err2);
>
> snprintf(nodename, sizeof(nodename), "%s/page-ref", dev->nodename);
> err2 = xenbus_rm(XBT_NIL, nodename);
> - if (err2) free(err2);
> + free(err2);
> snprintf(nodename, sizeof(nodename), "%s/event-channel", dev->nodename);
> err2 = xenbus_rm(XBT_NIL, nodename);
> - if (err2) free(err2);
> + free(err2);
> snprintf(nodename, sizeof(nodename), "%s/protocol", dev->nodename);
> err2 = xenbus_rm(XBT_NIL, nodename);
> - if (err2) free(err2);
> + free(err2);
> snprintf(nodename, sizeof(nodename), "%s/feature-update", dev->nodename);
> err2 = xenbus_rm(XBT_NIL, nodename);
> - if (err2) free(err2);
> + free(err2);
>
> if (!err)
> free_fbfront(dev);
> diff --git a/extras/mini-os/kernel.c b/extras/mini-os/kernel.c
> index 24fa25c..ea409f4 100644
> --- a/extras/mini-os/kernel.c
> +++ b/extras/mini-os/kernel.c
> @@ -85,9 +85,9 @@ static void shutdown_thread(void *p)
> xenbus_wait_for_watch(&events);
> }
> err = xenbus_unwatch_path_token(XBT_NIL, path, token);
> - if (err) free(err);
> + free(err);
> err = xenbus_write(XBT_NIL, path, "");
> - if (err) free(err);
> + free(err);
> printk("Shutting down (%s)\n", shutdown);
>
> if (!strcmp(shutdown, "poweroff"))
> diff --git a/extras/mini-os/lib/sys.c b/extras/mini-os/lib/sys.c
> index cfbdc90..13e7e59 100644
> --- a/extras/mini-os/lib/sys.c
> +++ b/extras/mini-os/lib/sys.c
> @@ -1156,8 +1156,7 @@ LWIP_STUB(int, getsockname, (int s, struct sockaddr *name, socklen_t *namelen),
> static char *syslog_ident;
> void openlog(const char *ident, int option, int facility)
> {
> - if (syslog_ident)
> - free(syslog_ident);
> + free(syslog_ident);
> syslog_ident = strdup(ident);
> }
>
> diff --git a/extras/mini-os/netfront.c b/extras/mini-os/netfront.c
> index 3a5be64..44c3995 100644
> --- a/extras/mini-os/netfront.c
> +++ b/extras/mini-os/netfront.c
> @@ -412,7 +412,7 @@ again:
> }
>
> err = xenbus_transaction_end(xbt, 0, &retry);
> - if (err) free(err);
> + free(err);
> if (retry) {
> goto again;
> printk("completing transaction\n");
> @@ -525,7 +525,7 @@ void shutdown_netfront(struct netfront_dev *dev)
> state = xenbus_read_integer(path);
> while (err == NULL && state < XenbusStateClosing)
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
> - if (err) free(err);
> + free(err);
>
> if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateClosed)) != NULL) {
> printk("shutdown_netfront: error changing state to %d: %s\n",
> @@ -535,7 +535,7 @@ void shutdown_netfront(struct netfront_dev *dev)
> state = xenbus_read_integer(path);
> while (state < XenbusStateClosed) {
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
> - if (err) free(err);
> + free(err);
> }
>
> if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateInitialising)) != NULL) {
> @@ -548,22 +548,22 @@ void shutdown_netfront(struct netfront_dev *dev)
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
>
> close:
> - if (err) free(err);
> + free(err);
> err2 = xenbus_unwatch_path_token(XBT_NIL, path, path);
> - if (err2) free(err2);
> + free(err2);
>
> snprintf(nodename, sizeof(nodename), "%s/tx-ring-ref", dev->nodename);
> err2 = xenbus_rm(XBT_NIL, nodename);
> - if (err2) free(err2);
> + free(err2);
> snprintf(nodename, sizeof(nodename), "%s/rx-ring-ref", dev->nodename);
> err2 = xenbus_rm(XBT_NIL, nodename);
> - if (err2) free(err2);
> + free(err2);
> snprintf(nodename, sizeof(nodename), "%s/event-channel", dev->nodename);
> err2 = xenbus_rm(XBT_NIL, nodename);
> - if (err2) free(err2);
> + free(err2);
> snprintf(nodename, sizeof(nodename), "%s/request-rx-copy", dev->nodename);
> err2 = xenbus_rm(XBT_NIL, nodename);
> - if (err2) free(err2);
> + free(err2);
>
> if (!err)
> free_netfront(dev);
> diff --git a/extras/mini-os/pcifront.c b/extras/mini-os/pcifront.c
> index 7838021..16a4b49 100644
> --- a/extras/mini-os/pcifront.c
> +++ b/extras/mini-os/pcifront.c
> @@ -212,7 +212,7 @@ again:
> }
>
> err = xenbus_transaction_end(xbt, 0, &retry);
> - if (err) free(err);
> + free(err);
> if (retry) {
> goto again;
> printk("completing transaction\n");
> @@ -251,7 +251,7 @@ done:
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
> if (state != XenbusStateConnected) {
> printk("backend not avalable, state=%d\n", state);
> - if (err) free(err);
> + free(err);
> err = xenbus_unwatch_path_token(XBT_NIL, path, path);
> goto error;
> }
> @@ -342,7 +342,7 @@ void shutdown_pcifront(struct pcifront_dev *dev)
> state = xenbus_read_integer(path);
> while (err == NULL && state < XenbusStateClosing)
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
> - if (err) free(err);
> + free(err);
>
> if ((err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateClosed)) != NULL) {
> printk("shutdown_pcifront: error changing state to %d: %s\n",
> @@ -365,16 +365,16 @@ void shutdown_pcifront(struct pcifront_dev *dev)
> err = xenbus_wait_for_state_change(path, &state, &dev->events);
>
> close_pcifront:
> - if (err) free(err);
> + free(err);
> err2 = xenbus_unwatch_path_token(XBT_NIL, path, path);
> - if (err2) free(err2);
> + free(err2);
>
> snprintf(nodename, sizeof(nodename), "%s/info-ref", dev->nodename);
> err2 = xenbus_rm(XBT_NIL, nodename);
> - if (err2) free(err2);
> + free(err2);
> snprintf(nodename, sizeof(nodename), "%s/event-channel", dev->nodename);
> err2 = xenbus_rm(XBT_NIL, nodename);
> - if (err2) free(err2);
> + free(err2);
>
> if (!err)
> free_pcifront(dev);
> diff --git a/tools/blktap/drivers/blktapctrl.c b/tools/blktap/drivers/blktapctrl.c
> index 0a8b880..0022264 100644
> --- a/tools/blktap/drivers/blktapctrl.c
> +++ b/tools/blktap/drivers/blktapctrl.c
> @@ -642,11 +642,9 @@ static int connect_tapdisk(blkif_t *blkif, int minor)
> ret = 0;
>
> fail:
> - if (rdctldev)
> - free(rdctldev);
> + free(rdctldev);
>
> - if (wrctldev)
> - free(wrctldev);
> + free(wrctldev);
>
> return ret;
> }
> diff --git a/tools/blktap/drivers/tapaio.c b/tools/blktap/drivers/tapaio.c
> index 140c44a..ae26577 100644
> --- a/tools/blktap/drivers/tapaio.c
> +++ b/tools/blktap/drivers/tapaio.c
> @@ -244,18 +244,12 @@ fail:
>
> void tap_aio_free(tap_aio_context_t *ctx)
> {
> - if (ctx->sector_lock)
> - free(ctx->sector_lock);
> - if (ctx->iocb_list)
> - free(ctx->iocb_list);
> - if (ctx->pending_aio)
> - free(ctx->pending_aio);
> - if (ctx->aio_events)
> - free(ctx->aio_events);
> - if (ctx->iocb_free)
> - free(ctx->iocb_free);
> - if (ctx->iocb_queue)
> - free(ctx->iocb_queue);
> + free(ctx->sector_lock);
> + free(ctx->iocb_list);
> + free(ctx->pending_aio);
> + free(ctx->aio_events);
> + free(ctx->iocb_free);
> + free(ctx->iocb_queue);
> }
>
> /*TODO: Fix sector span!*/
> diff --git a/tools/blktap/drivers/tapdisk.c b/tools/blktap/drivers/tapdisk.c
> index 19cd777..a6e8a7c 100644
> --- a/tools/blktap/drivers/tapdisk.c
> +++ b/tools/blktap/drivers/tapdisk.c
> @@ -82,10 +82,8 @@ static void daemonize(void)
>
> static void free_driver(struct disk_driver *d)
> {
> - if (d->name)
> - free(d->name);
> - if (d->private)
> - free(d->private);
> + free(d->name);
> + free(d->private);
> free(d);
> }
>
> @@ -354,8 +352,7 @@ static int open_disk(struct td_state *s,
>
> fail:
> DPRINTF("failed opening disk\n");
> - if (id.name)
> - free(id.name);
> + free(id.name);
> d = s->disks;
> while (d) {
> struct disk_driver *tmp = d->next;
> diff --git a/tools/blktap/lib/xenbus.c b/tools/blktap/lib/xenbus.c
> index 948eb02..9edbf5a 100644
> --- a/tools/blktap/lib/xenbus.c
> +++ b/tools/blktap/lib/xenbus.c
> @@ -160,10 +160,8 @@ static int backend_remove(struct xs_handle *h, struct backend_info *be)
> DPRINTF("Freeing blkif dev [%d]\n",be->blkif->devnum);
> free_blkif(be->blkif);
> }
> - if (be->frontpath)
> - free(be->frontpath);
> - if (be->backpath)
> - free(be->backpath);
> + free(be->frontpath);
> + free(be->backpath);
> free(be);
> return 0;
> }
> @@ -435,8 +433,7 @@ fail:
> backend_remove(h, be);
> }
> close:
> - if (path)
> - free(path);
> + free(path);
> return;
> }
>
> @@ -501,8 +498,7 @@ static void ueblktap_probe(struct xs_handle *h, struct xenbus_watch *w,
> if ( (be != NULL) && (be->blkif != NULL) )
> backend_remove(h, be);
> else goto free_be;
> - if (bepath)
> - free(bepath);
> + free(bepath);
> return;
> }
>
> @@ -522,12 +518,9 @@ static void ueblktap_probe(struct xs_handle *h, struct xenbus_watch *w,
> return;
>
> free_be:
> - if (frontend)
> - free(frontend);
> - if (bepath)
> - free(bepath);
> - if (be)
> - free(be);
> + free(frontend);
> + free(bepath);
> + free(be);
> }
>
> /**
> diff --git a/tools/blktap/lib/xs_api.c b/tools/blktap/lib/xs_api.c
> index 4648432..1624cb9 100644
> --- a/tools/blktap/lib/xs_api.c
> +++ b/tools/blktap/lib/xs_api.c
> @@ -204,8 +204,7 @@ char *get_dom_domid(struct xs_handle *h)
> }
> done:
> xs_transaction_end(h, xth, 0);
> - if (e)
> - free(e);
> + free(e);
> return domid;
> }
>
> diff --git a/tools/blktap2/control/tap-ctl-list.c b/tools/blktap2/control/tap-ctl-list.c
> index c91f6f4..170735e 100644
> --- a/tools/blktap2/control/tap-ctl-list.c
> +++ b/tools/blktap2/control/tap-ctl-list.c
> @@ -219,8 +219,7 @@ out:
> return err ? : n_minors;
>
> fail:
> - if (minorv)
> - free(minorv);
> + free(minorv);
>
> goto out;
> }
> @@ -302,8 +301,7 @@ out:
> return err ? : n_taps;
>
> fail:
> - if (tapv)
> - free(tapv);
> + free(tapv);
>
> goto out;
> }
> diff --git a/tools/blktap2/drivers/block-log.c b/tools/blktap2/drivers/block-log.c
> index 5330cdc..21c1946 100644
> --- a/tools/blktap2/drivers/block-log.c
> +++ b/tools/blktap2/drivers/block-log.c
> @@ -110,8 +110,7 @@ static int writelog_create(struct tdlog_state *s)
>
> static int writelog_free(struct tdlog_state *s)
> {
> - if (s->writelog)
> - free(s->writelog);
> + free(s->writelog);
>
> return 0;
> }
> diff --git a/tools/flask/utils/loadpolicy.c b/tools/flask/utils/loadpolicy.c
> index f347b97..2edcf97 100644
> --- a/tools/flask/utils/loadpolicy.c
> +++ b/tools/flask/utils/loadpolicy.c
> @@ -108,8 +108,7 @@ int main (int argCnt, const char *args[])
> }
>
> done:
> - if ( polMemCp )
> - free(polMemCp);
> + free(polMemCp);
> if ( polMem )
> {
> ret = munmap(polMem, info.st_size);
> diff --git a/tools/libxc/xc_compression.c b/tools/libxc/xc_compression.c
> index 89f1be7..8f0b89d 100644
> --- a/tools/libxc/xc_compression.c
> +++ b/tools/libxc/xc_compression.c
> @@ -457,16 +457,11 @@ void xc_compression_free_context(xc_interface *xch, comp_ctx *ctx)
> {
> if (!ctx) return;
>
> - if (ctx->inputbuf)
> - free(ctx->inputbuf);
> - if (ctx->sendbuf_pfns)
> - free(ctx->sendbuf_pfns);
> - if (ctx->cache_base)
> - free(ctx->cache_base);
> - if (ctx->pfn2cache)
> - free(ctx->pfn2cache);
> - if (ctx->cache)
> - free(ctx->cache);
> + free(ctx->inputbuf);
> + free(ctx->sendbuf_pfns);
> + free(ctx->cache_base);
> + free(ctx->pfn2cache);
> + free(ctx->cache);
> free(ctx);
> }
>
> diff --git a/tools/libxc/xc_core_x86.c b/tools/libxc/xc_core_x86.c
> index a9681f7..e328dcf 100644
> --- a/tools/libxc/xc_core_x86.c
> +++ b/tools/libxc/xc_core_x86.c
> @@ -180,11 +180,9 @@ out:
> if ( live_p2m_frame_list )
> munmap(live_p2m_frame_list, P2M_FLL_ENTRIES * PAGE_SIZE);
>
> - if ( p2m_frame_list_list )
> - free(p2m_frame_list_list);
> + free(p2m_frame_list_list);
>
> - if ( p2m_frame_list )
> - free(p2m_frame_list);
> + free(p2m_frame_list);
>
> errno = err;
> return ret;
> diff --git a/tools/libxc/xc_domain_save.c b/tools/libxc/xc_domain_save.c
> index fbc15e9..673d1e9 100644
> --- a/tools/libxc/xc_domain_save.c
> +++ b/tools/libxc/xc_domain_save.c
> @@ -773,11 +773,9 @@ static xen_pfn_t *map_and_save_p2m_table(xc_interface *xch,
> if ( live_p2m_frame_list )
> munmap(live_p2m_frame_list, P2M_FLL_ENTRIES * PAGE_SIZE);
>
> - if ( p2m_frame_list_list )
> - free(p2m_frame_list_list);
> + free(p2m_frame_list_list);
>
> - if ( p2m_frame_list )
> - free(p2m_frame_list);
> + free(p2m_frame_list);
>
> return success ? p2m : NULL;
> }
> diff --git a/tools/libxc/xc_gnttab.c b/tools/libxc/xc_gnttab.c
> index a8cc381..79dab40 100644
> --- a/tools/libxc/xc_gnttab.c
> +++ b/tools/libxc/xc_gnttab.c
> @@ -124,8 +124,7 @@ static void *_gnttab_map_table(xc_interface *xch, int domid, int *gnt_num)
> err:
> if ( frame_list )
> xc_hypercall_buffer_free(xch, frame_list);
> - if ( pfn_list )
> - free(pfn_list);
> + free(pfn_list);
>
> return gnt;
> }
> diff --git a/tools/libxc/xc_offline_page.c b/tools/libxc/xc_offline_page.c
> index 8195efb..0b4cdf9 100644
> --- a/tools/libxc/xc_offline_page.c
> +++ b/tools/libxc/xc_offline_page.c
> @@ -626,14 +626,11 @@ failed:
> }
> }
>
> - if (mmu)
> - free(mmu);
> + free(mmu);
>
> - if (old_ptes.entries)
> - free(old_ptes.entries);
> + free(old_ptes.entries);
>
> - if (backup)
> - free(backup);
> + free(backup);
>
> if (gnttab_v1)
> munmap(gnttab_v1, gnt_num / (PAGE_SIZE/sizeof(grant_entry_v1_t)));
> diff --git a/tools/libxl/libxl_event.c b/tools/libxl/libxl_event.c
> index fd2f280..73b7e63 100644
> --- a/tools/libxl/libxl_event.c
> +++ b/tools/libxl/libxl_event.c
> @@ -578,8 +578,7 @@ int libxl__ev_xswatch_register(libxl__gc *gc, libxl__ev_xswatch *w,
> out_rc:
> if (use)
> LIBXL_SLIST_INSERT_HEAD(&CTX->watch_freeslots, use, empty);
> - if (path_copy)
> - free(path_copy);
> + free(path_copy);
> CTX_UNLOCK;
> return rc;
> }
> diff --git a/tools/libxl/libxl_qmp.c b/tools/libxl/libxl_qmp.c
> index f681f3a..7e825ee 100644
> --- a/tools/libxl/libxl_qmp.c
> +++ b/tools/libxl/libxl_qmp.c
> @@ -406,12 +406,10 @@ static void qmp_close(libxl__qmp_handler *qmp)
>
> close(qmp->qmp_fd);
> LIBXL_STAILQ_FOREACH(pp, &qmp->callback_list, next) {
> - if (tmp)
> - free(tmp);
> + free(tmp);
> tmp = pp;
> }
> - if (tmp)
> - free(tmp);
> + free(tmp);
> }
>
> static int qmp_next(libxl__gc *gc, libxl__qmp_handler *qmp)
> diff --git a/tools/libxl/libxl_utils.c b/tools/libxl/libxl_utils.c
> index 8e567a8..664a730 100644
> --- a/tools/libxl/libxl_utils.c
> +++ b/tools/libxl/libxl_utils.c
> @@ -355,7 +355,7 @@ int libxl_read_file_contents(libxl_ctx *ctx, const char *filename,
> e = errno;
> assert(e != ENOENT);
> if (f) fclose(f);
> - if (data) free(data);
> + free(data);
> return e;
> }
>
> diff --git a/tools/memshr/bidir-hash.c b/tools/memshr/bidir-hash.c
> index bed8179..3d34637 100644
> --- a/tools/memshr/bidir-hash.c
> +++ b/tools/memshr/bidir-hash.c
> @@ -208,8 +208,8 @@ static void free_buckets(struct __hash *h,
> struct bucket *buckets,
> struct bucket_lock *bucket_locks)
> {
> - if(buckets) free(buckets);
> - if(bucket_locks) free(bucket_locks);
> + free(buckets);
> + free(bucket_locks);
> }
>
> static int max_entries(struct __hash *h)
> diff --git a/tools/misc/gtraceview.c b/tools/misc/gtraceview.c
> index d8b4589..cf9287c 100644
> --- a/tools/misc/gtraceview.c
> +++ b/tools/misc/gtraceview.c
> @@ -959,8 +959,7 @@ int time_mode_rebuild(uint64_t start_time, uint64_t time_scale)
> state = malloc(sizeof(struct state) * number);
> if (!state)
> return 1;
> - if (this->state)
> - free(this->state);
> + free(this->state);
> this->state = state;
> this->width = 9;
> this->row = 0;
> diff --git a/tools/tests/xen-access/xen-access.c b/tools/tests/xen-access/xen-access.c
> index 49195a8..b00c05a 100644
> --- a/tools/tests/xen-access/xen-access.c
> +++ b/tools/tests/xen-access/xen-access.c
> @@ -219,10 +219,8 @@ int xenaccess_teardown(xc_interface *xch, xenaccess_t *xenaccess)
> }
> xenaccess->xc_handle = NULL;
>
> - if ( xenaccess->platform_info )
> - free(xenaccess->platform_info);
> - if ( xenaccess->domain_info )
> - free(xenaccess->domain_info);
> + free(xenaccess->platform_info);
> + free(xenaccess->domain_info);
> free(xenaccess);
>
> return 0;
> diff --git a/tools/xenbackendd/xenbackendd.c b/tools/xenbackendd/xenbackendd.c
> index 5381a2a..f1eb1f5 100644
> --- a/tools/xenbackendd/xenbackendd.c
> +++ b/tools/xenbackendd/xenbackendd.c
> @@ -291,8 +291,7 @@ main(int argc, char * const argv[])
>
> switch(type) {
> case DEVTYPE_VIF:
> - if (s)
> - free(s);
> + free(s);
> snprintf(buf, sizeof(buf), "%s/script",
> vec[XS_WATCH_PATH]);
> s = xs_read(xs, XBT_NULL, buf, 0);
> @@ -314,8 +313,7 @@ main(int argc, char * const argv[])
> }
>
> next2:
> - if (s)
> - free(s);
> + free(s);
> free(sstate);
>
> next1:
> --
> 1.7.10.4
>
--
Samuel
<y> update-menus: relocation error: update-menus: symbol _ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E, version GLIBCPP_3.2 not defined in file libstdc++.so.5 with link time reference
<y> quoi que ça peut bien vouloir dire ?
<D> N a eu la meme merde
<y> c ça que ça veut dire ? wow, c'est bien crypté :)
-+- #ens-mim s'entraide -+-
next prev parent reply other threads:[~2013-09-30 21:15 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-18 3:37 [PATCH 00/28] Fixes for various minor Coverity issues, volume 2 Matthew Daley
2013-09-18 3:37 ` [PATCH 01/28] gnttab: remove unused shared header lookup Matthew Daley
2013-09-19 9:12 ` Tim Deegan
2013-09-18 3:37 ` [PATCH 02/28] libxc: fix memory leak in load_p2m_frame_list error handling Matthew Daley
2013-09-25 12:57 ` Ian Campbell
2013-09-18 3:37 ` [PATCH 03/28] libxc: move munmap into the loop it's needed in in change_pte Matthew Daley
2013-09-25 11:39 ` Ian Campbell
2013-09-29 1:35 ` [PATCH] libxc: only munmap when something has actually been mapped " Matthew Daley
2013-10-03 13:39 ` Ian Campbell
2013-09-18 3:37 ` [PATCH 04/28] libxl: fix libxl_string_list_length and its only caller Matthew Daley
2013-09-25 12:58 ` Ian Campbell
2013-09-26 19:29 ` Boris Ostrovsky
2013-09-26 19:37 ` Andrew Cooper
2013-09-27 0:46 ` Matthew Daley
2013-09-18 3:37 ` [PATCH 05/28] libxl: fix dispose without init of disk in cd_insert Matthew Daley
2013-09-25 13:01 ` Ian Campbell
2013-09-18 3:37 ` [PATCH 06/28] libxl: fix leak of corename in handle_domain_death Matthew Daley
2013-09-18 3:37 ` [PATCH 07/28] libxl: fix leak of config_data in main_cpupoolcreate Matthew Daley
2013-09-18 3:37 ` [PATCH 08/28] libxl: fix leak of rune in main_remus Matthew Daley
2013-09-18 3:37 ` [PATCH 09/28] libxl: fix out-of-memory check in parse_global_config Matthew Daley
2013-09-18 3:37 ` [PATCH 10/28] libxl: only free cpupoolinfo if necessary in libxl_list_cpupool Matthew Daley
2013-09-18 8:06 ` Dario Faggioli
2013-09-18 8:58 ` Matthew Daley
2013-09-18 3:37 ` [PATCH 11/28] libxl: only put poller if already gotten in libxl_event_wait Matthew Daley
2013-09-18 12:29 ` Andrew Cooper
2013-09-18 13:06 ` Matthew Daley
2013-09-29 5:24 ` [PATCH v2] " Matthew Daley
2013-10-03 13:39 ` Ian Campbell
2013-10-11 11:12 ` [PATCH] libxl: make libxl__poller_put tolerate p==NULL libxl_event_wait Ian Jackson
2013-10-11 11:47 ` Ian Campbell
2013-10-11 14:51 ` Ian Jackson
2013-10-12 22:38 ` Matthew Daley
2013-10-14 16:49 ` Ian Jackson
2013-09-18 3:37 ` [PATCH 12/28] libxl: only free cputopology if it was allocated in libxl__get_numa_candidate Matthew Daley
2013-09-18 7:57 ` Dario Faggioli
2013-09-18 8:42 ` Matthew Daley
2013-09-18 9:10 ` Dario Faggioli
2013-09-18 9:30 ` Matthew Daley
2013-09-18 12:54 ` Dario Faggioli
2013-09-18 3:37 ` [PATCH 13/28] libxl: only free cputopology if it was allocated in libxl_{cpu, node}map_to_{node, cpu}map Matthew Daley
2013-09-18 8:18 ` Dario Faggioli
2013-09-18 8:50 ` Matthew Daley
2013-09-18 8:59 ` Dario Faggioli
2013-09-29 5:47 ` [PATCH v2] libxl: correctly handle libxl_get_cpu_topology failure " Matthew Daley
2013-09-30 10:29 ` Dario Faggioli
2013-10-03 14:03 ` Ian Campbell
2013-09-18 3:37 ` [PATCH 14/28] libxl: only free console reader if it was allocated in main_dmesg Matthew Daley
2013-09-18 3:37 ` [PATCH 15/28] libxl: fix typo in libxl__hotplug_nic error checking Matthew Daley
2013-09-18 3:37 ` [PATCH 16/28] libxl: fix file open failure check in libxl__file_reference_map Matthew Daley
2013-09-18 3:37 ` [PATCH 17/28] libxl: gettimeofday doesn't return an errno on failure Matthew Daley
2013-09-25 12:04 ` Ian Campbell
2013-09-25 23:11 ` Matthew Daley
2013-09-26 8:51 ` Ian Campbell
2013-09-18 3:37 ` [PATCH 18/28] xenstored: handle unlikely failure better in ask_parents Matthew Daley
2013-09-25 13:06 ` Ian Campbell
2013-09-25 23:17 ` Matthew Daley
2013-09-18 3:37 ` [PATCH 19/28] xenstored: fix faulty check for bad handle in domain_init Matthew Daley
2013-09-18 3:37 ` [PATCH 20/28] xenstore: check socket path length before copying it Matthew Daley
2013-09-18 3:37 ` [PATCH 21/28] mini-os: fix nodename generation in init_netfront Matthew Daley
2013-09-18 11:46 ` Samuel Thibault
2013-09-18 3:37 ` [PATCH 22/28] mini-os: fix various memory leaks in blkfront Matthew Daley
2013-09-18 11:47 ` Samuel Thibault
2013-09-18 3:37 ` [PATCH 23/28] mini-os: fix various memory leaks in {fb, kbd}front Matthew Daley
2013-09-18 11:50 ` Samuel Thibault
2013-09-18 12:39 ` Andrew Cooper
2013-09-18 13:01 ` Matthew Daley
2013-09-29 3:05 ` [PATCH] remove unnecessary null pointer checks before frees Matthew Daley
2013-09-29 3:26 ` [PATCH v2] " Matthew Daley
2013-09-30 21:15 ` Samuel Thibault [this message]
2013-10-03 13:43 ` Ian Campbell
2013-10-07 10:15 ` George Dunlap
2013-10-15 5:18 ` [PATCH v3] " Matthew Daley
2013-10-31 22:03 ` Ian Campbell
2013-09-18 3:38 ` [PATCH 24/28] mini-os: fix various memory leaks in netfront Matthew Daley
2013-09-18 11:50 ` Samuel Thibault
2013-09-18 3:38 ` [PATCH 25/28] mini-os: fix various memory leaks in pcifront Matthew Daley
2013-09-18 11:51 ` Samuel Thibault
2013-09-18 3:38 ` [PATCH 26/28] mini-os: fix various memory leaks in consfront Matthew Daley
2013-09-18 11:53 ` Samuel Thibault
2013-09-18 3:38 ` [PATCH 27/28] mini-os: fix various memory leaks in various locations Matthew Daley
2013-09-18 11:54 ` Samuel Thibault
2013-09-18 3:38 ` [PATCH 28/28] gdbsx: clear sockaddr before using it Matthew Daley
2013-09-21 15:57 ` [PATCH 00/28] Fixes for various minor Coverity issues, volume 2 Ian Campbell
2013-10-03 13:45 ` Ian Campbell
2013-10-03 13:47 ` Ian Campbell
2013-10-03 23:29 ` Matthew Daley
2013-10-04 8:00 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130930211508.GN5376@type.youpi.perso.aquilenet.fr \
--to=samuel.thibault@ens-lyon.org \
--cc=Ian.Campbell@citrix.com \
--cc=andrew.cooper3@citrix.com \
--cc=mattjd@gmail.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).