From: Thomas Weißschuh Date: Sat, 19 Nov 2022 19:37:50 +0000 (+0100) Subject: libblkid: exfat: validate more fields X-Git-Tag: v2.39-rc1~415^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1a73b23e30cb62554d85d3bc85261b30d5bd7b27;p=thirdparty%2Futil-linux.git libblkid: exfat: validate more fields --- diff --git a/libblkid/src/superblocks/exfat.c b/libblkid/src/superblocks/exfat.c index 003c08f6f4..c07054ac43 100644 --- a/libblkid/src/superblocks/exfat.c +++ b/libblkid/src/superblocks/exfat.c @@ -167,6 +167,16 @@ static int probe_exfat(blkid_probe pr, const struct blkid_idmag *mag) if (!sb || !CLUSTER_SIZE(sb)) return errno ? -errno : BLKID_PROBE_NONE; + if (le16_to_cpu(sb->BootSignature) != 0xAA55) + return BLKID_PROBE_NONE; + + if (memcmp(sb->JumpBoot, "\xEB\x76\x90", 3) != 0) + return BLKID_PROBE_NONE; + + for (size_t i = 0; i < sizeof(sb->MustBeZero); i++) + if (sb->MustBeZero[i] != 0x00) + return BLKID_PROBE_NONE; + if (!exfat_validate_checksum(pr, sb)) return BLKID_PROBE_NONE;