]> git.proxmox.com Git - grub2.git/commitdiff
* grub-core/fs/affs.c (grub_affs_mount): Read data->bblock.rootblock
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 18 Dec 2010 23:52:18 +0000 (00:52 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 18 Dec 2010 23:52:18 +0000 (00:52 +0100)
rather than assuming than rootblock is exactly in the middle.
(grub_affs_label): Likewise.

ChangeLog
grub-core/fs/affs.c

index cc3f65c867470421e6c4e64389cf68921a5d7c69..8f459f19843213a7d97d9af5dfd7a8979b5c5e99 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-12-19  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/fs/affs.c (grub_affs_mount): Read data->bblock.rootblock
+       rather than assuming than rootblock is exactly in the middle.
+       (grub_affs_label): Likewise.
+
 2010-12-19  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/fs/affs.c (grub_affs_fs) [GRUB_UTIL]: Explicitly set
index 27e03c0c4910aba300ad3a4ce008a685ca932c2b..40be4b2f61c7671339ba89db6b336ac817967ef2 100644 (file)
@@ -208,7 +208,7 @@ grub_affs_mount (grub_disk_t disk)
   rblock = (struct grub_affs_rblock *) rootblock;
 
   /* Read the rootblock.  */
-  grub_disk_read (disk, (disk->total_sectors >> 1) + blocksize, 0,
+  grub_disk_read (disk, grub_be_to_cpu32 (data->bblock.rootblock), 0,
                  GRUB_DISK_SECTOR_SIZE * 16, rootblock);
   if (grub_errno)
     goto fail;
@@ -240,7 +240,7 @@ grub_affs_mount (grub_disk_t disk)
   data->disk = disk;
   data->htsize = grub_be_to_cpu32 (rblock->htsize);
   data->diropen.data = data;
-  data->diropen.block = (disk->total_sectors >> 1);
+  data->diropen.block = grub_be_to_cpu32 (data->bblock.rootblock);
 
   grub_free (rootblock);
 
@@ -507,7 +507,7 @@ grub_affs_label (grub_device_t device, char **label)
     {
       /* The rootblock maps quite well on a file header block, it's
         something we can use here.  */
-      grub_disk_read (data->disk, disk->total_sectors >> 1,
+      grub_disk_read (data->disk, grub_be_to_cpu32 (data->bblock.rootblock),
                      data->blocksize * (GRUB_DISK_SECTOR_SIZE
                                         - GRUB_AFFS_FILE_LOCATION),
                      sizeof (file), &file);