]> 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)
committerAmos Jeffries <yadij@users.noreply.github.com>
Thu, 5 Oct 2023 00:30:13 +0000 (13:30 +1300)
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 b6f3dd79dbf993baf389f3c74c14b12b13801b08..6a0d253b139bfb6be4cffe206ddc30a17a2785f2 100644 (file)
@@ -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