]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Y2038: improve printing of time settings (#1493)
authorFrancesco Chemolli <5175948+kinkie@users.noreply.github.com>
Tue, 3 Oct 2023 18:11:51 +0000 (18:11 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Tue, 3 Oct 2023 18:11:56 +0000 (18:11 +0000)
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).

src/cache_cf.cc

index 3437a3154189e56e86bed7fd5f0e8914be2efd6b..d6b718b0d27232e07cdf069794dde78a30dbdfaf 100644 (file)
@@ -2950,7 +2950,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
@@ -2972,10 +2973,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