From 89b396d3730908d5166c64bebc7bddab35abf1af Mon Sep 17 00:00:00 2001 From: Maschell Date: Sat, 11 Jun 2022 15:33:21 +0200 Subject: [PATCH] wutdevoptab: Only update the file->offset on a successful seek. --- libraries/wutdevoptab/devoptab_fs_seek.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libraries/wutdevoptab/devoptab_fs_seek.c b/libraries/wutdevoptab/devoptab_fs_seek.c index bea680c6..5c80de7f 100644 --- a/libraries/wutdevoptab/devoptab_fs_seek.c +++ b/libraries/wutdevoptab/devoptab_fs_seek.c @@ -56,11 +56,14 @@ __wut_fs_seek(struct _reent *r, return -1; } - // Update the current offset + uint32_t old_offset = file->offset; file->offset = offset + pos; + status = FSSetPosFile(__wut_devoptab_fs_client, &cmd, file->fd, file->offset, FS_ERROR_FLAG_ALL); if (status < 0) { + // revert offset update on error. + file->offset = old_offset; r->_errno = __wut_fs_translate_error(status); return -1; }