From 7d9421deca68aed6b37effb91c67c03ae93439c2 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sat, 29 Feb 2020 09:08:02 +0100 Subject: [PATCH] MINOR: tools: make sure to correctly check the returned 'ms' in date2std_log In commit 4eee38a ("BUILD/MINOR: tools: fix build warning in the date conversion functions") we added some return checks to shut build warnings but the last test is useless since the tested pointer is not updated by the last call to utoa_pad() used to convert the milliseconds. It turns out the original code from 2012 already skipped this part, probably in order to avoid the risk of seeing a millisecond field not belonging to the 0-999 range. Better keep the check and put the code into stricter shape. No backport is needed. This fixes issue #526. --- src/standard.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/standard.c b/src/standard.c index 056710c67..289184765 100644 --- a/src/standard.c +++ b/src/standard.c @@ -2952,10 +2952,9 @@ char *date2str_log(char *dst, const struct tm *tm, const struct timeval *date, s return NULL; *dst++ = '.'; - utoa_pad((unsigned int)(date->tv_usec/1000), dst, 4); // millisecondes + dst = utoa_pad((unsigned int)(date->tv_usec/1000)%1000, dst, 4); // milliseconds if (!dst) return NULL; - dst += 3; // only the 3 first digits *dst = '\0'; return dst;