Coverity: fix memory leak along error path.
authorRichard W.M. Jones <rjones@redhat.com>
Tue, 23 Aug 2011 18:50:11 +0000 (19:50 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Sun, 28 Aug 2011 08:19:55 +0000 (09:19 +0100)
(cherry picked from commit ce18be33cd5279a8d4120eedd037400c275585c0)

src/appliance.c

index 9f86954..836e679 100644 (file)
@@ -402,6 +402,12 @@ check_for_cached_appliance (guestfs_h *g,
   /* Releases the lock on checksum. */
   if (close (fd) == -1) {
     perrorf (g, "close");
+    /* Allocated in hard_link_to_cached_appliance above, must be
+     * freed along this error path.
+     */
+    free (*kernel);
+    free (*initrd);
+    free (*appliance);
     return -1;
   }
 
@@ -540,6 +546,12 @@ build_supermin_appliance (guestfs_h *g,
   /* Releases the lock on checksum. */
   if (close (fd) == -1) {
     perrorf (g, "close");
+    /* Allocated in hard_link_to_cached_appliance above, must be
+     * freed along this error path.
+     */
+    free (*kernel);
+    free (*initrd);
+    free (*appliance);
     return -1;
   }