Re: [PATCH] fat: Relax checks for sector size and media type

From: OGAWA Hirofumi
Date: Mon Sep 03 2018 - 04:01:09 EST


Pali Rohár <pali.rohar@xxxxxxxxx> writes:

>> Just relaxing validation doesn't work. The block layer doesn't support
>> smaller than 512, and lager than PAGE_SIZE. (And in specification, fat
>> doesn't support lager than 4096.)
>
> Hi! I just sent this patch for discussion, with links to (now open
> source) Windows implementation. I guess that Windows driver
> implementation is more "authoritative" then Microsoft's own
> specification. It is known that Windows implementation does not match
> Microsoft specification.
>
> I know at least 3 FAT specifications (MS EFI FAT, MS/SD card FAT,
> ECMA-107) and you are right that Microsoft's one does not allow sector
> sizes larger then 4096.
>
> If there is limitation by block layer, then:
>
> 1) Why we do not check for PAGE_SIZE?

That source seems to check power_of_2(size) and 128 <= size <=
4096. Rather why do you want to support larger than 4096? Or I'm missing
something?

> 2) Is check in fat driver really needed (if block layer checks it)?

Yes, isolating block layer error and fat format error to be better error
report.
--
OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>