${prvs was broken on systems where time_t is long long.
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Tue, 28 Feb 2006 14:54:54 +0000 (14:54 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Tue, 28 Feb 2006 14:54:54 +0000 (14:54 +0000)
doc/doc-txt/ChangeLog
src/src/expand.c

index c508ee5454f516c254706964e549f333413f30cf..8773e24f408cc8fa8e874388c2fd64a58e1d4436 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.315 2006/02/28 12:42:47 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.316 2006/02/28 14:54:54 ph10 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -241,6 +241,8 @@ PH/46 Messages that are created by the autoreply transport now contains a
 
 PH/47 Added authenticated_sender_force to the smtp transport.
 
 
 PH/47 Added authenticated_sender_force to the smtp transport.
 
+PH/48 The ${prvs expansion was broken on systems where time_t was long long.
+
 
 Exim version 4.60
 -----------------
 
 Exim version 4.60
 -----------------
index 1d82a150ca949a0c092e16f77e51c56a329efae6..c4932d58d503f6b50782743bd40f01153b5d0409 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/expand.c,v 1.54 2006/02/10 14:25:43 ph10 Exp $ */
+/* $Cambridge: exim/src/src/expand.c,v 1.55 2006/02/28 14:54:54 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -2566,8 +2566,8 @@ Returns:  pointer to string containing the last three
 static uschar *
 prvs_daystamp(int day_offset)
 {
 static uschar *
 prvs_daystamp(int day_offset)
 {
-uschar *days = store_get(16);
-(void)string_format(days, 16, TIME_T_FMT,
+uschar *days = store_get(32);                /* Need at least 24 for cases */
+(void)string_format(days, 32, TIME_T_FMT,    /* where TIME_T_FMT is %lld */
   (time(NULL) + day_offset*86400)/86400);
 return (Ustrlen(days) >= 3) ? &days[Ustrlen(days)-3] : US"100";
 }
   (time(NULL) + day_offset*86400)/86400);
 return (Ustrlen(days) >= 3) ? &days[Ustrlen(days)-3] : US"100";
 }