]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2008-06-09 Pavel Roskin <proski@gnu.org>
authorproski <proski@localhost>
Mon, 9 Jun 2008 15:32:43 +0000 (15:32 +0000)
committerproski <proski@localhost>
Mon, 9 Jun 2008 15:32:43 +0000 (15:32 +0000)
* fs/minix.c (grub_minix_mount): Handle error reading
superblock.

ChangeLog
fs/minix.c

index 3f3230e92286c9f5cd152ae13ec557c8ebe8c2d7..14c205e02167001894e3301a3176e0eed2e5b2fb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-06-09  Pavel Roskin  <proski@gnu.org>
+
+       * fs/minix.c (grub_minix_mount): Handle error reading
+       superblock.
+
 2008-06-08  Robert Millan  <rmh@aybabtu.com>
 
        * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
index e78863e277223d7e3a81d300fb6190865d0a0519..aa8ffb17d8f4a6801acdd1e9d993ed99a3f3eebf 100644 (file)
@@ -422,6 +422,8 @@ grub_minix_mount (grub_disk_t disk)
   /* Read the superblock.  */
   grub_disk_read (disk, GRUB_MINIX_SBLOCK, 0,
                  sizeof (struct grub_minix_sblock),(char *) &data->sblock);
+  if (grub_errno)
+    goto fail;
 
   if (grub_le_to_cpu16 (data->sblock.magic) == GRUB_MINIX_MAGIC)
     {
@@ -444,16 +446,17 @@ grub_minix_mount (grub_disk_t disk)
       data->filename_size = 30;
     }
   else
-    {
-      grub_free (data);
-      grub_error (GRUB_ERR_BAD_FS, "not an minix filesystem");
-      return 0;
-    }
-  
+    goto fail;
+
   data->disk = disk;
   data->linknest = 0;
 
   return data;
+
+ fail:
+  grub_free (data);
+  grub_error (GRUB_ERR_BAD_FS, "not a minix filesystem");
+  return 0;
 }
 \f
 static grub_err_t