From 3458846794cc2cb002c46b5824819daed3e4db8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net> Date: Fri, 24 Jan 2025 19:10:48 -0500 Subject: [PATCH] fseek() after ftruncate() Ensure the stream is in a meaningful place. Fixes a bug, but one we're unlikely to have ever seen the way we use this. --- src/xpdev/ini_file.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/xpdev/ini_file.c b/src/xpdev/ini_file.c index e0aeab8459..026bbcb857 100644 --- a/src/xpdev/ini_file.c +++ b/src/xpdev/ini_file.c @@ -2909,8 +2909,11 @@ bool iniWriteFile(FILE* fp, const str_list_t list) pos = ftell(fp); if (pos == -1) return false; - if (chsize(fileno(fp), pos) != 0) /* truncate */ + if (chsize(fileno(fp), pos) != 0) { /* truncate */ + fseek(fp, 0, SEEK_END); return false; + } + fseek(fp, 0, SEEK_END); return count == strListCount(list); } -- GitLab