Commit 0645dacc authored by Tom Lane's avatar Tom Lane

Fix unsafe assumption that struct timeval.tv_sec is a "long".

It typically is a "long", but it seems possible that on some platforms
it wouldn't be.  In any case, this silences a compiler warning on
OpenBSD (cf buildfarm member curculio).

While at it, use snprintf not sprintf.  This format string couldn't
possibly overrun the supplied buffer, but that doesn't seem like
a good reason not to use the safer style.

Oversight in commit f828654e.  Back-patch to 9.6 where that came in.
parent c648f058
...@@ -2484,7 +2484,8 @@ log_line_prefix(StringInfo buf, ErrorData *edata) ...@@ -2484,7 +2484,8 @@ log_line_prefix(StringInfo buf, ErrorData *edata)
saved_timeval_set = true; saved_timeval_set = true;
} }
sprintf(strfbuf, "%ld.%03d", saved_timeval.tv_sec, snprintf(strfbuf, sizeof(strfbuf), "%ld.%03d",
(long) saved_timeval.tv_sec,
(int) (saved_timeval.tv_usec / 1000)); (int) (saved_timeval.tv_usec / 1000));
if (padding != 0) if (padding != 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment