diff options
author | Sipke Vriend <sipke.vriend@miot.com.au> | 2019-10-01 07:20:43 +0300 |
---|---|---|
committer | Sipke Vriend <sipke.vriend@miot.com.au> | 2019-10-01 07:20:43 +0300 |
commit | 8cca58f1a6162592696ec7964c5bd7f2582de924 (patch) | |
tree | c41d9912db74a400ca52c8b5abe0a3033016df24 | |
parent | 97f86af4e914496d2e728df0186881476f2916b1 (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.c | 18 |
1 files changed, 9 insertions, 9 deletions
@@ -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); |