Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/littlefs-project/littlefs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSipke Vriend <sipke.vriend@miot.com.au>2019-10-01 07:20:43 +0300
committerSipke Vriend <sipke.vriend@miot.com.au>2019-10-01 07:20:43 +0300
commit8cca58f1a6162592696ec7964c5bd7f2582de924 (patch)
treec41d9912db74a400ca52c8b5abe0a3033016df24
parent97f86af4e914496d2e728df0186881476f2916b1 (diff)
lfs_file_truncate: ensure lfs_file_seek return code is lsf_soff_t and cast error returns
To ensure 16 bit devices do not invalidly truncate lfs_file_write return codes, change the return variable to be lfs_ssize_t which is the lfs_file_write return code and cast to int if it is a negative error code.
-rw-r--r--lfs.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/lfs.c b/lfs.c
index 046af95..bf60852 100644
--- a/lfs.c
+++ b/lfs.c
@@ -3006,10 +3006,10 @@ int lfs_file_truncate(lfs_t *lfs, lfs_file_t *file, lfs_off_t size) {
} else if (size > oldsize) {
// flush+seek if not already at end
if (file->pos != oldsize) {
- int err = lfs_file_seek(lfs, file, 0, LFS_SEEK_END);
- if (err < 0) {
- LFS_TRACE("lfs_file_truncate -> %d", err);
- return err;
+ lfs_soff_t res = lfs_file_seek(lfs, file, 0, LFS_SEEK_END);
+ if (res < 0) {
+ LFS_TRACE("lfs_file_truncate -> %d", res);
+ return (int)res;
}
}
@@ -3018,16 +3018,16 @@ int lfs_file_truncate(lfs_t *lfs, lfs_file_t *file, lfs_off_t size) {
lfs_ssize_t res = lfs_file_write(lfs, file, &(uint8_t){0}, 1);
if (res < 0) {
LFS_TRACE("lfs_file_truncate -> %d", res);
- return res;
+ return (int)res;
}
}
}
// restore pos
- int err = lfs_file_seek(lfs, file, pos, LFS_SEEK_SET);
- if (err < 0) {
- LFS_TRACE("lfs_file_truncate -> %d", err);
- return err;
+ lfs_soff_t res = lfs_file_seek(lfs, file, pos, LFS_SEEK_SET);
+ if (res < 0) {
+ LFS_TRACE("lfs_file_truncate -> %d", res);
+ return (int)res;
}
LFS_TRACE("lfs_file_truncate -> %d", 0);