]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
authorjeroen <jeroen@localhost>
Fri, 18 May 2007 21:40:06 +0000 (21:40 +0000)
committerjeroen <jeroen@localhost>
Fri, 18 May 2007 21:40:06 +0000 (21:40 +0000)
* kern/disk.c (grub_disk_read): Check return value of
grub_realloc().

ChangeLog
kern/disk.c

index c453fc36e19ac2379865dd40b34e11ceaa18ab2e..c4638521cb310755de2ba6f6d227e3fbdd074dc5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-18  Jeroen Dekkers  <jeroen@dekkers.cx>
+
+       * kern/disk.c (grub_disk_read): Check return value of
+       grub_realloc().
+
 2007-05-18  Jeroen Dekkers  <jeroen@dekkers.cx>
 
        * util/getroot.c (grub_util_get_grub_dev): Support partitionable
index 4ac123f927f5e76c5d79a797da375e5120b8af0c..e80ad54a05a31057c3425710af6a62b3a9b57620 100644 (file)
@@ -409,13 +409,19 @@ grub_disk_read (grub_disk_t disk, grub_disk_addr_t sector,
            {
              /* Uggh... Failed. Instead, just read necessary data.  */
              unsigned num;
+             char *p;
 
              grub_errno = GRUB_ERR_NONE;
 
              num = ((size + GRUB_DISK_SECTOR_SIZE - 1)
                     >> GRUB_DISK_SECTOR_BITS);
 
-             tmp_buf = grub_realloc (tmp_buf, num << GRUB_DISK_SECTOR_BITS);
+             p = grub_realloc (tmp_buf, num << GRUB_DISK_SECTOR_BITS);
+             if (!p)
+               goto finish;
+
+             tmp_buf = p;
+             
              if ((disk->dev->read) (disk, sector, num, tmp_buf))
                {
                  grub_error_push ();