So maybe we should actually check for the FAT
signature at buff[0x36] or
buff[0x52] first, and then do the calculations if we
actually do find
one of them.
Changelog: Make sure we're really looking at a FAT before doing
some calculations
based on the contents of the first sector of a
partition.
That doesn't solve the real issue, a FAT signature is not a guarantee that the rest of the block is valid, so we still need to check these values against zero. The code should not crash no matter what garbage the block contains.