rust-fatfs/CHANGELOG.md
Rafał Harabień e4b72836f0 Fix file-system corruption when creating directory entries
Corruption happens if:
* files are created in non-root directory
* directory size becomes greater or equal to cluster size
Creating last directory entry in the directory cluster corrupts the
cluster directly preceding the directory cluster.
For 512 bytes long cluster creating 8th directory entry (counted from 1)
will cause first corruption.
Directory entry that causes the corruption will not be updated correctly.

Fixes #42
2021-01-22 00:22:54 +01:00

2.5 KiB

Changelog

0.3.5 (not released yet)

Bug fixes:

  • Fix file-system corruption when creating multiple directory entries in non-root directory (directory size must be greater or equal to cluster size for corruption to happen)

0.3.4 (2020-07-20)

Bug fixes:

  • Fix time encoding and decoding in directory entries

0.3.3 (2019-11-10)

Bug fixes:

  • Add missing characters to the whitelist for long file name (^, #, &)
  • Fix invalid short file names for . and .. entries when creating a new directory
  • Fix no_std build

Misc changes:

  • Fix compiler warnings
  • Improve documentation

0.3.2 (2018-12-29)

New features:

  • Add format_volume function for initializing a FAT filesystem on a partition
  • Add more checks of filesystem correctness when mounting

Bug fixes:

  • Clear directory returned from create_dir method - upgrade ASAP if this method is used
  • Fix handling of FSInfo sector on FAT32 volumes with sector size different than 512 - upgrade ASAP if such sector size is used
  • Use write_all in serialize method for FSInfo sector - previously it could have been improperly updated

0.3.1 (2018-10-20)

New features:

  • Increased file creation time resolution from 2s to 1/100s
  • Added oem_cp_converter filesystem option allowing to provide custom short name decoder
  • Added time_provider filesystem option allowing to provide time used when modifying directory entries
  • Added marking volume as dirty on first write and not-dirty on unmount
  • Added support for reading volume label from root directory

Bug fixes:

  • Fixed handling of short names with spaces in the middle - all characters after first space in 8.3 components were stripped before
  • Fixed decoding 0xE5 character in first byte of short name - if first character of short name is equal to 0xE5, it was read as 0x05
  • Preserve 4 most significant bits in FAT32 entries - it is required by FAT specification, but previous behavior should not cause any compatibility problem because all known implementations ignore those bits
  • Fixed warnings for file entries without LFN entries - they were handled properly, but caused warnings in run-time

Misc changes:

  • Deprecated set_created. set_accessed, set_modified methods on File - those fields are updated automatically using information provided by TimeProvider
  • Fixed size formatting in ls.rs example
  • Added more filesystem checks causing errors or warnings when incompatibility is detected
  • Removed unnecessary clone() calls
  • Code formatting and docs fixes