]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/fs/zfs/zfs.c (zfs_fetch_nvlist): Mark unknown member here
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 12 Feb 2012 18:19:57 +0000 (19:19 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 12 Feb 2012 18:19:57 +0000 (19:19 +0100)
as GRUB_ERR_BUG. Don't malloc if no device is available.

ChangeLog
grub-core/fs/zfs/zfs.c

index 8563c418f225fbf3d36d96e9dd29e1b8cce6e765..7fbc46937fbb2976fc204254b591f29b9e60d0df 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-02-12  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/fs/zfs/zfs.c (zfs_fetch_nvlist): Mark unknown member here
+       as GRUB_ERR_BUG. Don't malloc if no device is available.
+
 2012-02-12  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/term/terminfo.c (grub_terminfo_output_unregister):
index 8c1e9ae87f0c2fa674624930cd7356b9c594e37c..20f425d6376e832cf42eca971767d030bdcdc645 100644 (file)
@@ -571,9 +571,12 @@ zfs_fetch_nvlist (struct grub_zfs_device_desc *diskdesc, char **nvlist)
 {
   grub_err_t err;
 
-  *nvlist = grub_malloc (VDEV_PHYS_SIZE);
+  *nvlist = 0;
+
   if (!diskdesc->dev)
-    return grub_error (GRUB_ERR_BAD_FS, "member drive unknown");
+    return grub_error (GRUB_ERR_BUG, "member drive unknown");
+
+  *nvlist = grub_malloc (VDEV_PHYS_SIZE);
 
   /* Read in the vdev name-value pair list (112K). */
   err = grub_disk_read (diskdesc->dev->disk, diskdesc->vdev_phys_sector, 0,