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

62 lines
2.5 KiB
Markdown

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