Messages in this thread | | | From | Anatoly Trosinenko <> | Date | Sun, 15 Jul 2018 18:08:23 +0300 | Subject | Re: FAT: Operating on broken FAT FS causes the write syscall to return negative number not equal to -1 |
| |
Thank you!
> This patch returns better error (-EIO) for me.
This works for me likewise.
> (But note, the corrupted FS image doesn't guarantee POSIX behavior.)
Oops, I was just doing some testing and thought that correct behavior for crafted FS is to return arbitrary valid error code (like -EIO) or some arbitrary data, say, not larger than FS (not disclosing the kernel memory, of course). Please excuse me if I was wrong. If fixing this would slow down some hot code path, then I am not insisting on returning valid errno. :)
Meanwhile, how should be considered such discrepancies with man pages for invalid FS images: should it be considered low priority bug, not-a-bug or feature request (diagnostics)?
Thanks Anatoly
вс, 15 июл. 2018 г. в 17:30, Al Viro <viro@zeniv.linux.org.uk>: > > On Sun, Jul 15, 2018 at 11:20:06PM +0900, OGAWA Hirofumi wrote: > > +static inline bool fat_valid_entry(struct msdos_sb_info *sbi, int entry) > > +{ > > + if (entry < FAT_START_ENT || sbi->max_cluster <= entry) > > + return false; > > + return true; > > +} > > Pet peeve: if (...) return false; return true; instead of return !....; > > In this case, > return entry >= FAT_START_ENT && entry < sb->max_cluster;
| |