From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Daley Subject: [PATCH 26/28] mini-os: fix various memory leaks in consfront Date: Wed, 18 Sep 2013 15:38:02 +1200 Message-ID: <1379475484-25993-27-git-send-email-mattjd@gmail.com> References: <1379475484-25993-1-git-send-email-mattjd@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1379475484-25993-1-git-send-email-mattjd@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Samuel Thibault , Matthew Daley , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org Coverity-ID: 1055816 Coverity-ID: 1055817 Coverity-ID: 1055818 Signed-off-by: Matthew Daley --- extras/mini-os/console/xenbus.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/extras/mini-os/console/xenbus.c b/extras/mini-os/console/xenbus.c index 4194982..b317114 100644 --- a/extras/mini-os/console/xenbus.c +++ b/extras/mini-os/console/xenbus.c @@ -42,7 +42,8 @@ void free_consfront(struct consfront_dev *dev) close: if (err) free(err); - xenbus_unwatch_path_token(XBT_NIL, path, path); + err = xenbus_unwatch_path_token(XBT_NIL, path, path); + if (err) free(err); mask_evtchn(dev->evtchn); unbind_evtchn(dev->evtchn); @@ -58,7 +59,7 @@ close: struct consfront_dev *init_consfront(char *_nodename) { xenbus_transaction_t xbt; - char* err; + char* err = NULL; char* message=NULL; int retry=0; char* msg = NULL; @@ -87,7 +88,7 @@ struct consfront_dev *init_consfront(char *_nodename) snprintf(path, sizeof(path), "%s/backend-id", nodename); if ((res = xenbus_read_integer(path)) < 0) - return NULL; + goto error; else dev->dom = res; evtchn_alloc_unbound(dev->dom, console_handle_input, dev, &dev->evtchn); @@ -170,7 +171,7 @@ done: msg = xenbus_wait_for_state_change(path, &state, &dev->events); if (msg != NULL || state != XenbusStateConnected) { printk("backend not available, state=%d\n", state); - xenbus_unwatch_path_token(XBT_NIL, path, path); + err = xenbus_unwatch_path_token(XBT_NIL, path, path); goto error; } } -- 1.7.10.4