]> granicus.if.org Git - postgresql/commitdiff
Guard against null t->tm_zone in strftime.c.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 7 May 2017 16:33:12 +0000 (12:33 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 7 May 2017 16:33:12 +0000 (12:33 -0400)
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.

src/timezone/strftime.c

index d9a18d49a8cad4a0e5c7280fbfa225aea055d85b..3f6ba395c6f6c0528ab53f3773a0af6edac1d3f8 100644 (file)
@@ -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)
                                                {