* 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
|
@ -107,10 +107,19 @@ grub_romfs_mount (grub_device_t dev)
|
|||
grub_error (GRUB_ERR_BAD_FS, "too short filesystem");
|
||||
return NULL;
|
||||
}
|
||||
if (grub_memcmp (sb.sb.magic, GRUB_ROMFS_MAGIC,
|
||||
sizeof (sb.sb.magic)) != 0)
|
||||
{
|
||||
grub_error (GRUB_ERR_BAD_FS, "not romfs");
|
||||
return NULL;
|
||||
}
|
||||
err = do_checksum (&sb, sizeof (sb) < grub_be_to_cpu32 (sb.sb.total_size) ?
|
||||
sizeof (sb) : grub_be_to_cpu32 (sb.sb.total_size));
|
||||
if (err)
|
||||
return NULL;
|
||||
{
|
||||
grub_error (GRUB_ERR_BAD_FS, "checksum incorrect");
|
||||
return NULL;
|
||||
}
|
||||
for (ptr = sb.sb.label; (void *) ptr < (void *) (&sb + 1)
|
||||
&& ptr - sb.d < (grub_ssize_t) grub_be_to_cpu32 (sb.sb.total_size); ptr++)
|
||||
if (!*ptr)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue