postgres.git / summary / log / commit / refs

commit    ef0eecfa1f36cf85cef838fbcc7ed13b42c274e2
Author:   Bruce Momjian <bruce@momjian.us>
Date:     Mon Mar 30 17:46:45 1998 +0000
First released in: 6.3.2

    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


src/backend/catalog/pg_type.c | 6 ++++-- 1 file 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 */ [parent: dbf34c5c19f8]