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>
Tue, 23 Aug 2011 18:50:11 +0000 (19:50 +0100)
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;
   }