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>
Fri, 16 Sep 2011 15:15:35 +0000 (16:15 +0100)
(cherry picked from commit ce18be33cd5279a8d4120eedd037400c275585c0)

src/appliance.c

index 6629abb..822fe77 100644 (file)
@@ -401,6 +401,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;
   }
 
@@ -539,6 +545,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;
   }