aboutsummaryrefslogtreecommitdiff
path: root/src/timezone/strftime.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2017-05-07 12:33:12 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2017-05-07 12:33:12 -0400
commita54d5875fe0bc19d05236b85e1e1bf0af9fa2902 (patch)
treecf1fe04f564e30a5b3c55c37e75ecfba5df7ca84 /src/timezone/strftime.c
parentd4e59c5521c244e809c3d68df51fb79543578e41 (diff)
downloadpostgresql-a54d5875fe0bc19d05236b85e1e1bf0af9fa2902.tar.gz
postgresql-a54d5875fe0bc19d05236b85e1e1bf0af9fa2902.zip
Guard against null t->tm_zone in strftime.c.
The upstream IANA code does not guard against null TM_ZONE pointers in this function, but in our code there is such a check in the other pre-existing use of t->tm_zone. We do have some places that set pg_tm.tm_zone to NULL. I'm not entirely sure it's possible to reach strftime with such a value, but I'm not sure it isn't either, so be safe. Per Coverity complaint.
Diffstat (limited to 'src/timezone/strftime.c')
-rw-r--r--src/timezone/strftime.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/timezone/strftime.c b/src/timezone/strftime.c
index d9a18d49a8c..3f6ba395c6f 100644
--- a/src/timezone/strftime.c
+++ b/src/timezone/strftime.c
@@ -458,7 +458,8 @@ _fmt(const char *format, const struct pg_tm * t, char *pt, const char *ptlim,
negative = diff < 0;
if (diff == 0)
{
- negative = t->tm_zone[0] == '-';
+ if (t->tm_zone != NULL)
+ negative = t->tm_zone[0] == '-';
}
if (negative)
{