postgres.git / summary / log / commit / refs

commit    3243cbc085b8cd54cf12c323da3b5c8298ed5d69
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 e3272bd8063..ca6497846fe 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: 9b9b622b2a91]