Fixed accidental truncate after seek on inline files

The cause was mistakenly setting file->ctz.size directly instead of
file->pos, which file->ctz.size gets overwritten with later in
lfs_file_flush.

Also added better seek test cases specifically for inline files. This
should also catch most of the inline corner cases related to
lfs_file_size/lfs_file_tell.

Found by ebinans
This commit is contained in:
Christopher Haster
2019-05-28 13:55:03 -05:00
parent a9a61a3e78
commit 614f7b1e68
2 changed files with 59 additions and 1 deletions

2
lfs.c
View File

@@ -2548,7 +2548,7 @@ relocate:
}
}
} else {
file->ctz.size = lfs_max(file->pos, file->ctz.size);
file->pos = lfs_max(file->pos, file->ctz.size);
}
// actual file updates