From: Heikki Linnakangas Date: Tue, 2 Oct 2012 07:43:48 +0000 (+0300) Subject: Fix access past end of string in date parsing. X-Git-Tag: REL9_3_BETA1~858 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0899556e92958712cc31953497b82657cc706f94;p=thirdparty%2Fpostgresql.git Fix access past end of string in date parsing. This affects date_in(), and a couple of other funcions that use DecodeDate(). Hitoshi Harada --- diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c index d827d7d1463..12211c8273d 100644 --- a/src/backend/utils/adt/datetime.c +++ b/src/backend/utils/adt/datetime.c @@ -2176,9 +2176,12 @@ DecodeDate(char *str, int fmask, int *tmask, bool *is2digits, while (*str != '\0' && nf < MAXDATEFIELDS) { /* skip field separators */ - while (!isalnum((unsigned char) *str)) + while (*str != '\0' && !isalnum((unsigned char) *str)) str++; + if (*str == '\0') + return DTERR_BAD_FORMAT; /* end of string after separator */ + field[nf] = str; if (isdigit((unsigned char) *str)) {