diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2017-05-07 12:33:12 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2017-05-07 12:33:22 -0400 |
commit | 74e747fbdd978d01d2a5bdc1af27408b7c667c9c (patch) | |
tree | 0284f1117bb39a012af116b06f4049c561c78fce | |
parent | 2f66002df9c1c98203526d2b86332e7aea3777dd (diff) | |
download | postgresql-74e747fbdd978d01d2a5bdc1af27408b7c667c9c.tar.gz postgresql-74e747fbdd978d01d2a5bdc1af27408b7c667c9c.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.
-rw-r--r-- | src/timezone/strftime.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/timezone/strftime.c b/src/timezone/strftime.c index ab8f60e9c8f..2f32cf8bdb7 100644 --- a/src/timezone/strftime.c +++ b/src/timezone/strftime.c @@ -459,7 +459,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) { |