From: Victor Julien Date: Fri, 18 Feb 2022 09:19:04 +0000 (+0100) Subject: output: fix timestamp missing usecs X-Git-Tag: suricata-7.0.0-beta1~875 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a0c0471f1f51af0171ed5df1e2de0b900651bc19;p=thirdparty%2Fsuricata.git output: fix timestamp missing usecs On ARM 32bit with Musl `tv_usecs` is defined as `int64_t` which lead to CreateIsoTimeString() printing all zeros on the usecs. Work around this by first assigning to a `int64_t` and then updating the expected format string to accept `int64_t`. Bug: #5094. --- diff --git a/src/util-time.c b/src/util-time.c index 4509625bc2..8da993739d 100644 --- a/src/util-time.c +++ b/src/util-time.c @@ -222,8 +222,9 @@ void CreateIsoTimeString (const struct timeval *ts, char *str, size_t size) WinStrftime(ts, t, str, size); #else char time_fmt[64] = { 0 }; - strftime(time_fmt, sizeof(time_fmt), "%Y-%m-%dT%H:%M:%S.%%06u%z", t); - snprintf(str, size, time_fmt, ts->tv_usec); + int64_t usec = ts->tv_usec; + strftime(time_fmt, sizeof(time_fmt), "%Y-%m-%dT%H:%M:%S.%%06" PRIi64 "%z", t); + snprintf(str, size, time_fmt, usec); #endif } else { snprintf(str, size, "ts-error");