This is another patch release for v25.05 builds to fix some issues we found and had reported internally.
Fixes:
- Fixed incorrect null pointer check in TRIM function that caused the operation to exit with an error despite valid inputs
- Fixed incorrect SCSI operation code lookup for pulling SCSI Defect lists
- Fixed out of bounds access for FARM combined log pull. This wrote a null terminator one byte outside of the allocated memory. This can cause memory corruption, but no known impact otherwise.
- Changed when the filesystem rescan or reread of the partition table happens to minimize cases where a drive may be disconnected from the OS due to being in an unreadable state. Examples: Sanitize failed state & ATA security locked & sector size change will put the drive into a different state that blocks media access or with different attributes that the OS does not know have changed. Attempting this rescan in this cases causes the drive to disconnect from the system and may have other side affects as well. All cases where this occurs not make sure the drive is in a state that it can complete this operation successfully.
- Fixed logic in read/write testing (openSeaChest_Generic) for some USB devices that report an ATA passthrough maxlba of 0. Previous versions will always fail on these devices even if they are otherwise working properly.
- Added tracking of when file locks/unlocks are requested on the device handle to keep things better synchronized between operations.
- Fixed a crash that occurs in Windows for NVMe devices using an openfabrics NVMe compatible driver.
- Rewrote logic to select SCSI media access commands with retries for reads, writes, verify, and synchronize cache (10byte vs 16byte versions)
- Added detecting and selecting a compatible firmware update transfer length to improve compatibility with various devices that have limitations they can report. Default behavior was previously to download in 32k segments, but now it checks if this is compatible and selects a compatible size if limitations are reported. Users can still override this and select a segment size as needed.
- Removed implied
--disableImmediateResponse
option when--fastformat x
passed during--formatUnit y
. This behavior can be selected as needed still, but it is no longer the default. This improves compatibility with some systems. - Fixed copyright date in the banner being dynamically set at compile time. This should be constant to when code was written/modified, not when it was compiled.
Compile time changes:
- Fixed usage for GNU access attributes which were sometimes applied incorrectly. This can cause warnings or incorrect optimizations, however no known issues have been reported for this.
- Increased usage of
const
fortDevice
structures to be more clear about when modifications are being done or not. This did find a couple minor code bugs, but no known case of causing incorrect runtime issues. - Fixed compatibility with some newer C23 capable compilers
- Fixed compatibility with msys2 mingw and clang environments. cygwin environment is not currently supported.