diff options
author | Bruce Momjian <bruce@momjian.us> | 1998-03-30 17:46:45 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1998-03-30 17:46:45 +0000 |
commit | ef0eecfa1f36cf85cef838fbcc7ed13b42c274e2 (patch) | |
tree | ad9efc3c49bc6665e77970677b086aa14a3a5491 | |
parent | dbf34c5c19f8f5ebfd0a27e5d83ffad57b283b9e (diff) | |
download | postgresql-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.c | 6 |
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 */ |