From: Jiaying Song <jiaying.song...@windriver.com> This patch replaces "%010ld" with "%019" PRIdMAX and casts time() to intmax_t, to prevent formatting overflow on systems where long is 32-bit but time_t is 64-bit.
The previous formatting could truncate high-bit time values, causing unexpected behavior in mail queue operations on systems with time beyond 2038. This ensures safe formatting of time values across 32-bit and 64-bit systems. Signed-off-by: Jiaying Song <jiaying.song...@windriver.com> --- postfix/src/postalias/postalias.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/postfix/src/postalias/postalias.c b/postfix/src/postalias/postalias.c index 9e77a6b20..ebb1dc329 100644 --- a/postfix/src/postalias/postalias.c +++ b/postfix/src/postalias/postalias.c @@ -489,7 +489,7 @@ static void postalias(char *map_type, char *path_name, int postalias_flags, */ mkmap->dict->flags &= ~DICT_FLAG_TRY1NULL; mkmap->dict->flags |= DICT_FLAG_TRY0NULL; - vstring_sprintf(value_buffer, "%010ld", (long) time((time_t *) 0)); + vstring_sprintf(value_buffer, "%019" PRIdMAX, (intmax_t)time(NULL)); #if (defined(HAS_NIS) || defined(HAS_NISPLUS)) mkmap->dict->flags &= ~DICT_FLAG_FOLD_FIX; mkmap_append(mkmap, "YP_LAST_MODIFIED", STR(value_buffer)); -- 2.34.1 _______________________________________________ Postfix-devel mailing list -- postfix-devel@postfix.org To unsubscribe send an email to postfix-devel-le...@postfix.org