From: Tom Lane Date: Thu, 12 Dec 2002 19:16:55 +0000 (+0000) Subject: Guard against overrunning CTZName buffer when TZ is bogus. X-Git-Tag: REL7_4_BETA1~1382 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ff7349694f399d0063b51419ea6e25770334f363;p=postgresql Guard against overrunning CTZName buffer when TZ is bogus. --- diff --git a/src/backend/utils/adt/nabstime.c b/src/backend/utils/adt/nabstime.c index a6aa8a42b3..853cd01485 100644 --- a/src/backend/utils/adt/nabstime.c +++ b/src/backend/utils/adt/nabstime.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.101 2002/11/12 00:39:08 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.102 2002/12/12 19:16:55 tgl Exp $ * * NOTES * @@ -130,14 +130,14 @@ GetCurrentAbsoluteTime(void) * XXX FreeBSD man pages indicate that this should work - thomas * 1998-12-12 */ - strcpy(CTZName, tm->tm_zone); + StrNCpy(CTZName, tm->tm_zone, MAXTZLEN+1); #elif defined(HAVE_INT_TIMEZONE) tm = localtime(&now); CDayLight = tm->tm_isdst; CTimeZone = ((tm->tm_isdst > 0) ? (TIMEZONE_GLOBAL - 3600) : TIMEZONE_GLOBAL); - strcpy(CTZName, tzname[tm->tm_isdst]); + StrNCpy(CTZName, tzname[tm->tm_isdst], MAXTZLEN+1); #else /* neither HAVE_TM_ZONE nor * HAVE_INT_TIMEZONE */ CTimeZone = tb.timezone * 60; @@ -212,14 +212,14 @@ GetCurrentAbsoluteTimeUsec(int *usec) * XXX FreeBSD man pages indicate that this should work - thomas * 1998-12-12 */ - strcpy(CTZName, tm->tm_zone); + StrNCpy(CTZName, tm->tm_zone, MAXTZLEN+1); #elif defined(HAVE_INT_TIMEZONE) tm = localtime(&now); CDayLight = tm->tm_isdst; CTimeZone = ((tm->tm_isdst > 0) ? (TIMEZONE_GLOBAL - 3600) : TIMEZONE_GLOBAL); - strcpy(CTZName, tzname[tm->tm_isdst]); + StrNCpy(CTZName, tzname[tm->tm_isdst], MAXTZLEN+1); #else /* neither HAVE_TM_ZONE nor * HAVE_INT_TIMEZONE */ CTimeZone = tb.timezone * 60;