diff options
author | Bruce Momjian <bruce@momjian.us> | 1998-12-13 04:37:51 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1998-12-13 04:37:51 +0000 |
commit | 31d825ba071d92945aaa59e4a37af5915dfaf9b8 (patch) | |
tree | bb84432f157cb9a463864b91a30a0900834a1b90 /src/backend/parser | |
parent | 589f5aa2412155a52acaf68c92d8ff2b8eb3ca3c (diff) |
While investigating a user's complaint, I have found some memory
destructions in 6.4 source using purify.
(1) parser/gram.y:fmtId()
It writes n+3 bytes into n+1 byte-long memory area if mixed case or
non-ascii identifiers given.
(2) catalog/index.c:
ATTRIBUTE_TUPLE_SIZE bytes are allocated but
sizeof(FormData_pg_attribute) bytes are written. Note that
ATTRIBUTE_TUPLE_SIZE is smaller than
sizeof(FormData_pg_attribute). (for example, on solaris 2.6,
Tatsuo Ishii
Diffstat (limited to 'src/backend/parser')
-rw-r--r-- | src/backend/parser/gram.y | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 9382d4a7dcb..293d50a4903 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.38 1998/12/04 15:34:29 thomas Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.39 1998/12/13 04:37:51 momjian Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -5224,7 +5224,7 @@ fmtId(char *rawid) if (! (islower(*cp) || isdigit(*cp) || (*cp == '_'))) break; if (*cp != '\0') { - cp = palloc(strlen(rawid)+1); + cp = palloc(strlen(rawid)+3); strcpy(cp,"\""); strcat(cp,rawid); strcat(cp,"\""); |