]> xenbits.xensource.com Git - mini-os.git/commitdiff
mini-os: fix double free() in xenbus
authorJuergen Gross <jgross@suse.com>
Thu, 9 Apr 2020 14:12:39 +0000 (16:12 +0200)
committerWei Liu <liuw@liuw.name>
Thu, 9 Apr 2020 14:40:27 +0000 (15:40 +0100)
Commit 973ad0c4de1b48 ("Save/Restore Support: Add suspend/restore
support for xenbus") introduced a double free of some memory and leaked
another memory allocation.

Fix those.

Coverity-ID: 1433640
Fixes: 973ad0c4de1b48 ("Save/Restore Support: Add suspend/restore support for xenbus")
Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Wei Liu <wl@xen.org>
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
xenbus/xenbus.c

index d72dc3a0f5d942bc2664c12588d707a791a34b7e..b12cef78a3e509f72e0fb275f80dd5297c04ebf1 100644 (file)
@@ -413,9 +413,11 @@ void resume_xenbus(int canceled)
 
             rep = xenbus_msg_reply(XS_WATCH, XBT_NIL, req, ARRAY_SIZE(req));
             msg = errmsg(rep);
-            if (msg)
+            if (msg) {
                 xprintk("error on XS_WATCH: %s\n", msg);
-            free(rep);
+                free(msg);
+            } else
+                free(rep);
         }
     }