]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/fs/zfs/zfs.c (check_pool_label): Fix memory leak.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 20 Oct 2013 15:57:28 +0000 (17:57 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 20 Oct 2013 15:57:28 +0000 (17:57 +0200)
ChangeLog
grub-core/fs/zfs/zfs.c

index e7d4ce4cb5702aa13d433ecba9da8e4d6e341dc9..f1e3ab9a772bdfe4fabc079b4b975fdf31fdb0fb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-10-20  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/fs/zfs/zfs.c (check_pool_label): Fix memory leak.
+
 2013-10-20  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/net/arp.c: Remove variable length arrays.
index dea231fbd7194fea59a9893e3abdd9ba953d030c..23603affea81ab966e345c929d315c14e49e1d61 100644 (file)
@@ -989,8 +989,11 @@ check_pool_label (struct grub_zfs_data *data,
           == ZEC_MAGIC)
     endian = GRUB_ZFS_BIG_ENDIAN;
   else
-    return grub_error (GRUB_ERR_BAD_FS,
-                      "bad vdev_phys_t.vp_zbt.zec_magic number");
+    {
+      grub_free (nvlist);
+      return grub_error (GRUB_ERR_BAD_FS,
+                        "bad vdev_phys_t.vp_zbt.zec_magic number");
+    }
   /* Now check the integrity of the vdev_phys_t structure though checksum.  */
   ZIO_SET_CHECKSUM(&emptycksum, diskdesc->vdev_phys_sector << 9, 0, 0, 0);
   err = zio_checksum_verify (emptycksum, ZIO_CHECKSUM_LABEL, endian,