From: Francesco Chemolli <5175948+kinkie@users.noreply.github.com> Date: Tue, 3 Oct 2023 18:11:51 +0000 (+0000) Subject: Y2038: improve printing of time settings (#1493) X-Git-Tag: SQUID_6_4~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cbd7fb6a0fb9877e6aaada27d1e258d93eb622a3;p=thirdparty%2Fsquid.git Y2038: improve printing of time settings (#1493) Avoid truncation errors when printing time_t-based squid.conf directives on platforms with 32-bit int and 64-bit time_t. Also avoid similar errors when printing time_msec-based directives on platforms with 32-bit int. Detected by Coverity. CID 1529622: Use of 32-bit time_t (Y2K38_SAFETY). --- diff --git a/src/cache_cf.cc b/src/cache_cf.cc index b6f3dd79db..6a0d253b13 100644 --- a/src/cache_cf.cc +++ b/src/cache_cf.cc @@ -2948,7 +2948,8 @@ parse_TokenOrQuotedString(char **var) static void dump_time_t(StoreEntry * entry, const char *name, time_t var) { - storeAppendPrintf(entry, "%s %d seconds\n", name, (int) var); + PackableStream os(*entry); + os << name << ' ' << var << " seconds\n"; } void @@ -2970,10 +2971,11 @@ free_time_t(time_t * var) static void dump_time_msec(StoreEntry * entry, const char *name, time_msec_t var) { + PackableStream os(*entry); if (var % 1000) - storeAppendPrintf(entry, "%s %" PRId64 " milliseconds\n", name, var); + os << name << ' ' << var << " milliseconds\n"; else - storeAppendPrintf(entry, "%s %d seconds\n", name, (int)(var/1000) ); + os << name << ' ' << (var/1000) << " seconds\n"; } static void