]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* util/getroot.c (convert_system_partition_to_system_disk): Fix use
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 31 Mar 2012 10:27:10 +0000 (12:27 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 31 Mar 2012 10:27:10 +0000 (12:27 +0200)
after free.
Reported by: Peter Jones.

ChangeLog
util/getroot.c

index bda8fb46febef9d6f2050ba5255db37fe9776b05..bdfa642ca6b5931347913064cc7be891201ba30f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-03-31  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * util/getroot.c (convert_system_partition_to_system_disk): Fix use
+       after free.
+       Reported by: Peter Jones.
+
 2012-03-31  Anton Blanchard  <anton@samba.org>
 
        * grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Do not byteswap
index be055bc32fe7d91b765ba0388f72e87008399fe2..c9415efcefdb65e05272b614fbf6a6634728ff5d 100644 (file)
@@ -1892,13 +1892,16 @@ devmapper_out:
              if (! mapper_name)
                grub_dprintf ("hostdisk", "%s has no DM name\n", path);
            }
+         char *ret;
+         if (mapper_name)
+           ret = xasprintf ("/dev/mapper/%s", mapper_name);
+         else
+           ret = NULL;
+
          if (tree)
            dm_tree_free (tree);
          free (path);
-         if (mapper_name)
-           return xasprintf ("/dev/mapper/%s", mapper_name);
-         else
-           return NULL;
+         return ret;
        }
 #endif /* HAVE_DEVICE_MAPPER */
     }