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 f828654e1. Back-patch to 9.6 where that came in.
This commit is contained in:
parent
c648f05831
commit
0645dacc37
@ -2484,8 +2484,9 @@ 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",
|
||||||
(int) (saved_timeval.tv_usec / 1000));
|
(long) saved_timeval.tv_sec,
|
||||||
|
(int) (saved_timeval.tv_usec / 1000));
|
||||||
|
|
||||||
if (padding != 0)
|
if (padding != 0)
|
||||||
appendStringInfo(buf, "%*s", padding, strfbuf);
|
appendStringInfo(buf, "%*s", padding, strfbuf);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user