xenstore: xs_suspend_evtchn_port: always free portstr
authorIan Jackson <ian.jackson@eu.citrix.com>
Tue, 21 Jan 2014 18:45:31 +0000 (18:45 +0000)
committerIan Campbell <ian.campbell@citrix.com>
Tue, 28 Jan 2014 11:21:49 +0000 (11:21 +0000)
If portstr!=NULL but plen==0 this function would leak portstr.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Ian Campbell <Ian.Campbell@citrix.com>
tools/xenstore/xs.c

index a636498f2e2261738fc5290f1761ea629b0853a2..dd03a8575551ca47f8fe28e328970cbcdfe0cafd 100644 (file)
@@ -1095,12 +1095,15 @@ int xs_suspend_evtchn_port(int domid)
     portstr = xs_read(xs, XBT_NULL, path, &plen);
     xs_daemon_close(xs);
 
-    if (!portstr || !plen)
-        return -1;
+    if (!portstr || !plen) {
+        port = -1;
+        goto out;
+    }
 
     port = atoi(portstr);
-    free(portstr);
 
+out:
+    free(portstr);
     return port;
 }