aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-03-30 17:46:45 +0000
committerBruce Momjian <bruce@momjian.us>1998-03-30 17:46:45 +0000
commitef0eecfa1f36cf85cef838fbcc7ed13b42c274e2 (patch)
treead9efc3c49bc6665e77970677b086aa14a3a5491
parentdbf34c5c19f8f5ebfd0a27e5d83ffad57b283b9e (diff)
downloadpostgresql-ef0eecfa1f36cf85cef838fbcc7ed13b42c274e2.tar.gz
postgresql-ef0eecfa1f36cf85cef838fbcc7ed13b42c274e2.zip
This simple patch to catalog/pg_type.c fixes a buffer overrun. It
was detected by Electric Fence and triggered by statements like: SELECT * into table t from pg_database; The system would crash on a memmove call in DataFile() with arguments like this: memmove(0x0, 0x0, 0); Maurice Gittens
-rw-r--r--src/backend/catalog/pg_type.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/catalog/pg_type.c b/src/backend/catalog/pg_type.c
index 9fef898f2b3..2ca77f29926 100644
--- a/src/backend/catalog/pg_type.c
+++ b/src/backend/catalog/pg_type.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.20 1998/02/26 04:30:45 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.21 1998/03/30 17:46:45 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -318,6 +318,7 @@ TypeCreate(char *typeName,
TupleDesc tupDesc;
Oid argList[8];
+ NameData name;
static ScanKeyData typeKey[1] = {
@@ -387,7 +388,8 @@ TypeCreate(char *typeName,
* ----------------
*/
i = 0;
- values[i++] = PointerGetDatum(typeName); /* 1 */
+ namestrcpy(&name,typeName);
+ values[i++] = NameGetDatum(&name); /* 1 */
values[i++] = (Datum) GetUserId(); /* 2 */
values[i++] = (Datum) internalSize; /* 3 */
values[i++] = (Datum) externalSize; /* 4 */