Description: [fix]ftruncate bugfix

Bug: #I3NEVN
Test:
This commit is contained in:
chenjing 2021-04-21 16:16:08 +08:00
parent 6ee33eb893
commit b9c544d898
2 changed files with 7 additions and 2 deletions

View File

@ -806,7 +806,10 @@ static FRESULT realloc_cluster(FILINFO *finfo, FFOBJID *obj, FSIZE_t size)
if ((cclust == BAD_CLUSTER) || (cclust == DISK_ERROR)) {
return FR_DISK_ERR;
}
if (cclust != END_OF_FILE) { /* Remove extra cluster if existing */
if ((obj->fs->fs_type == FS_FAT12 && cclust != FAT12_END_OF_FILE) ||
(obj->fs->fs_type == FS_FAT16 && cclust != FAT16_END_OF_FILE) ||
(obj->fs->fs_type == FS_FAT32 && cclust != FAT32_END_OF_FILE)) {
/* Remove extra cluster if existing */
result = remove_chain(obj, cclust, pclust);
if (result != FR_OK) {
return result;

View File

@ -55,7 +55,9 @@ extern "C" {
#define FAT32_MAXSIZE 0x100000000
#define BAD_CLUSTER 0x7FFFFFFF
#define DISK_ERROR 0xFFFFFFFF
#define END_OF_FILE 0x0FFFFFFF
#define FAT12_END_OF_FILE 0x00000FFF
#define FAT16_END_OF_FILE 0x0000FFFF
#define FAT32_END_OF_FILE 0x0FFFFFFF
#define FAT_ERROR (-1)
/* MBR */