postgres.git / summary / log / commit / refs
commit fd079dd0915a2005da2fbfd75fda1cc3611f3a2f
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sat Jun 16 18:45:47 2018 +0000
Use snprintf not sprintf in pg_waldump's timestamptz_to_str.
This could only cause an issue if strftime returned a ridiculously
long timezone name, which seems unlikely; and it wouldn't qualify
as a security problem even then, since pg_waldump (nee pg_xlogdump)
is a debug tool not part of the server. But gcc 8 has started issuing
warnings about it, so let's use snprintf and be safe.
Backpatch to 9.3 where this code was added.
Discussion: https://postgr.es/m/21789.1529170195@sss.pgh.pa.us
contrib/pg_xlogdump/compat.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/contrib/pg_xlogdump/compat.c b/contrib/pg_xlogdump/compat.c
index 6ca7012fd90..fe30f541e3a 100644
--- a/contrib/pg_xlogdump/compat.c
+++ b/contrib/pg_xlogdump/compat.c
@@ -64,9 +64,11 @@ timestamptz_to_str(TimestampTz dt)
strftime(zone, sizeof(zone), "%Z", ltime);
#ifdef HAVE_INT64_TIMESTAMP
- sprintf(buf, "%s.%06d %s", ts, (int) (dt % USECS_PER_SEC), zone);
+ snprintf(buf, sizeof(buf),
+ "%s.%06d %s", ts, (int) (dt % USECS_PER_SEC), zone);
#else
- sprintf(buf, "%s.%.6f %s", ts, fabs(dt - floor(dt)), zone);
+ snprintf(buf, sizeof(buf),
+ "%s.%.6f %s", ts, fabs(dt - floor(dt)), zone);
#endif
return buf;
[parent: 817f9f9a8a19]