Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix attempt to rename root dir in fsck due to uninitialized fields
When add_file() is called with offset 0, it will construct a DIR_ENT for the root directory instead of reading the contents from the filesystem. It did not initialize the whole DIR_ENT on the stack, just select values. In particular, the lcase field was left with an undefined value. If that value happened to include the FAT_NO_83NAME bit, the "neither long nor short file name" check in bad_name() added in 3.0.26 would trigger and cause an attempt to rename the entry (which is not possible). Example run: $ /sbin/fsck.fat -y bad.img fsck.fat 3.0.26 (2014-03-07) / Bad short file name (). Auto-renaming it. Renamed to bad.img: 14 files, 19388/403266 clusters This commit changes the initialization zeroize the whole struct before setting individual fields. Thanks to AlexisM, who found the cause and posted a patch on the Debian bug http://bugs.debian.org/764992 . Signed-off-by: Andreas Bombe <aeb@debian.org>
- Loading branch information