]> granicus.if.org Git - postgresql/commitdiff
The buffer overrun while creating sequences turns out to be a read
authorBruce Momjian <bruce@momjian.us>
Mon, 30 Mar 1998 17:15:26 +0000 (17:15 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 30 Mar 1998 17:15:26 +0000 (17:15 +0000)
access overrun. For the sake of doing things properly here is a
patch which fixes it.

This patch is for the file backend/commands/sequence.c.

Maurice Gittens

src/backend/commands/sequence.c

index 8313d15c65116368ae65ed83ba54c32b7de1c9ec..b19879b94728bc7cafe994a5333d97a4e0ce4c2b 100644 (file)
@@ -85,6 +85,7 @@ DefineSequence(CreateSeqStmt *seq)
        Datum           value[SEQ_COL_LASTCOL];
        char            null[SEQ_COL_LASTCOL];
        int                     i;
+       NameData        name;
 
        /* Check and set values */
        init_params(seq, &new);
@@ -110,7 +111,8 @@ DefineSequence(CreateSeqStmt *seq)
                        case SEQ_COL_NAME:
                                typnam->name = "name";
                                coldef->colname = "sequence_name";
-                               value[i - 1] = PointerGetDatum(seq->seqname);
+                               namestrcpy(&name, seq->seqname);
+                               value[i - 1] = NameGetDatum(&name);
                                break;
                        case SEQ_COL_LASTVAL:
                                typnam->name = "int4";