diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2016-12-06 19:52:34 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2016-12-06 19:52:34 -0500 |
commit | 0645dacc371da6169b06934e3bd238c5f770fe25 (patch) | |
tree | 2c8f1ab6c3daf911cd80d3f68e710f5800d2f6b2 | |
parent | c648f058319a59ad591dd9d1b0c48dfd655d063a (diff) | |
download | postgresql-0645dacc371da6169b06934e3bd238c5f770fe25.tar.gz postgresql-0645dacc371da6169b06934e3bd238c5f770fe25.zip |
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.
-rw-r--r-- | src/backend/utils/error/elog.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 224ee7801c1..69649290da2 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -2484,8 +2484,9 @@ log_line_prefix(StringInfo buf, ErrorData *edata) saved_timeval_set = true; } - sprintf(strfbuf, "%ld.%03d", saved_timeval.tv_sec, - (int) (saved_timeval.tv_usec / 1000)); + snprintf(strfbuf, sizeof(strfbuf), "%ld.%03d", + (long) saved_timeval.tv_sec, + (int) (saved_timeval.tv_usec / 1000)); if (padding != 0) appendStringInfo(buf, "%*s", padding, strfbuf); |