* grub-core/fs/bfs.c (mount): Improve filesystem detection reliability.
* grub-core/fs/ext2.c (grub_ext2_mount): Likewise. * grub-core/fs/hfs.c (grub_hfs_mount): Likewise. * grub-core/fs/hfsplus.c (grub_hfsplus_mount): Likewise. * grub-core/fs/jfs.c (grub_jfs_mount): Likewise. * grub-core/fs/minix.c (grub_minix_mount): Likewise. * grub-core/fs/ntfs.c (grub_ntfs_mount): Likewise. * grub-core/fs/romfs.c (grub_romfs_mount): Likewise. * grub-core/fs/xfs.c (grub_xfs_mount): Likewise.
This commit is contained in:
parent
fe8c2f1117
commit
2e57f28fc7
10 changed files with 63 additions and 18 deletions
|
@ -43,6 +43,7 @@ GRUB_MOD_LICENSE ("GPLv3+");
|
|||
#define grub_bfs_to_cpu16 grub_le_to_cpu16
|
||||
#define grub_bfs_to_cpu32 grub_le_to_cpu32
|
||||
#define grub_bfs_to_cpu64 grub_le_to_cpu64
|
||||
#define grub_cpu_to_bfs32_compile_time grub_cpu_to_le32_compile_time
|
||||
|
||||
#ifdef MODE_AFS
|
||||
#define grub_bfs_to_cpu_treehead grub_bfs_to_cpu32
|
||||
|
@ -818,11 +819,13 @@ mount (grub_disk_t disk, struct grub_bfs_superblock *sb)
|
|||
);
|
||||
if (err)
|
||||
return err;
|
||||
if (grub_bfs_to_cpu32 (sb->magic1) != SUPER_BLOCK_MAGIC1
|
||||
|| grub_bfs_to_cpu32 (sb->magic2) != SUPER_BLOCK_MAGIC2
|
||||
|| grub_bfs_to_cpu32 (sb->magic3) != SUPER_BLOCK_MAGIC3
|
||||
if (sb->magic1 != grub_cpu_to_bfs32_compile_time (SUPER_BLOCK_MAGIC1)
|
||||
|| sb->magic2 != grub_cpu_to_bfs32_compile_time (SUPER_BLOCK_MAGIC2)
|
||||
|| sb->magic3 != grub_cpu_to_bfs32_compile_time (SUPER_BLOCK_MAGIC3)
|
||||
|| sb->bsize == 0
|
||||
|| (grub_bfs_to_cpu32 (sb->bsize)
|
||||
!= (1U << grub_bfs_to_cpu32 (sb->log2_bsize))))
|
||||
!= (1U << grub_bfs_to_cpu32 (sb->log2_bsize)))
|
||||
|| grub_bfs_to_cpu32 (sb->log2_bsize) < GRUB_DISK_SECTOR_BITS)
|
||||
return grub_error (GRUB_ERR_BAD_FS,
|
||||
#ifdef MODE_AFS
|
||||
"not an AFS filesystem"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue