diff --git a/src/syncterm/webget.c b/src/syncterm/webget.c index 4459ec001094008f7a2ed3bd575c117236e9c6bf..b0d9c0e39979d9c0a8fed26e71b613f22ec65091 100644 --- a/src/syncterm/webget.c +++ b/src/syncterm/webget.c @@ -759,7 +759,16 @@ write_cacheinfo(struct http_session *sess) if (!iniSetBool(&info, NULL, "Immutable", sess->cache.immutable, NULL)) goto error_return; } - bool ret = iniWriteFile(sess->cache_info, info); + fflush(sess->cache_info); + bool ret; + if (chsize(fileno(sess->cache_info), 0) != 0) { + fseek(sess->cache_info, 0, SEEK_SET); + ret = false; + } + else { + fseek(sess->cache_info, 0, SEEK_SET); + ret = iniWriteFile(sess->cache_info, info); + } fclose(sess->cache_info); sess->cache_info = NULL; strListFree(&info);