Version 1.10.9.
[libguestfs.git] / src / appliance.c
index 5683882..822fe77 100644 (file)
@@ -240,7 +240,7 @@ calculate_supermin_checksum (guestfs_h *g, const char *supermin_path)
     return NULL;
   }
 
-  if (pclose (pp) == -1) {
+  if (pclose (pp) != 0) {
     warning (g, "pclose: %m");
     return NULL;
   }
@@ -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;
   }