Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 896a42a

Browse files
committed
From: Maurice Gittens <mgittens@david.gits.nl>
After applying the following patch there remain two probable buffer overruns detected by Electric Fence during the regression test. I'll try find out what causes the remain two ones. This patch also corrects a typo in smgr.c.
1 parent 0a0bd3d commit 896a42a

File tree

5 files changed

+23
-14
lines changed

5 files changed

+23
-14
lines changed

src/backend/catalog/pg_aggregate.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.13 1998/02/26 04:30:40 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.14 1998/04/01 15:35:01 scrappy Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -78,6 +78,7 @@ AggregateCreate(char *aggName,
7878
Oid xret2 = InvalidOid;
7979
Oid fret = InvalidOid;
8080
Oid fnArgs[8];
81+
NameData aname;
8182
TupleDesc tupDesc;
8283

8384
MemSet(fnArgs, 0, 8 * sizeof(Oid));
@@ -202,7 +203,8 @@ AggregateCreate(char *aggName,
202203
nulls[i] = ' ';
203204
values[i] = (Datum) NULL;
204205
}
205-
values[Anum_pg_aggregate_aggname - 1] = PointerGetDatum(aggName);
206+
namestrcpy(&aname, aggName);
207+
values[Anum_pg_aggregate_aggname - 1] = NameGetDatum(&aname);
206208
values[Anum_pg_aggregate_aggowner - 1] =
207209
Int32GetDatum(GetUserId());
208210
values[Anum_pg_aggregate_aggtransfn1 - 1] =

src/backend/catalog/pg_operator.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.22 1998/02/26 04:30:41 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.23 1998/04/01 15:35:04 scrappy Exp $
1111
*
1212
* NOTES
1313
* these routines moved here from commands/define.c and somewhat cleaned up.
@@ -19,6 +19,7 @@
1919
#include <catalog/pg_proc.h>
2020
#include <utils/syscache.h>
2121
#include <utils/tqual.h>
22+
#include <utils/builtins.h>
2223
#include <access/heapam.h>
2324
#include <catalog/catname.h>
2425
#include <catalog/pg_operator.h>
@@ -229,6 +230,7 @@ OperatorShellMakeWithOpenRelation(Relation pg_operator_desc,
229230
Datum values[Natts_pg_operator];
230231
char nulls[Natts_pg_operator];
231232
Oid operatorObjectId;
233+
NameData oname;
232234
TupleDesc tupDesc;
233235

234236
/* ----------------
@@ -246,7 +248,8 @@ OperatorShellMakeWithOpenRelation(Relation pg_operator_desc,
246248
* ----------------
247249
*/
248250
i = 0;
249-
values[i++] = PointerGetDatum(operatorName);
251+
namestrcpy(&oname, operatorName);
252+
values[i++] = NameGetDatum(&oname);
250253
values[i++] = Int32GetDatum(GetUserId());
251254
values[i++] = (Datum) (uint16) 0;
252255

@@ -474,6 +477,7 @@ OperatorDef(char *operatorName,
474477
char *name[4];
475478
Oid typeId[8];
476479
int nargs;
480+
NameData oname;
477481
TupleDesc tupDesc;
478482

479483
static ScanKeyData opKey[3] = {
@@ -608,7 +612,8 @@ OperatorDef(char *operatorName,
608612
* ----------------
609613
*/
610614
i = 0;
611-
values[i++] = PointerGetDatum(operatorName);
615+
namestrcpy(&oname, operatorName);
616+
values[i++] = NameGetDatum(&oname);
612617
values[i++] = Int32GetDatum(GetUserId());
613618
values[i++] = UInt16GetDatum(precedence);
614619
values[i++] = leftTypeName ? (rightTypeName ? 'b' : 'r') : 'l';

src/backend/catalog/pg_proc.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.15 1998/02/26 04:30:43 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.16 1998/04/01 15:35:05 scrappy Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -71,6 +71,7 @@ ProcedureCreate(char *procedureName,
7171
Oid relid;
7272
Oid toid;
7373
text *prosrctext;
74+
NameData procname;
7475
TupleDesc tupDesc;
7576

7677
/* ----------------
@@ -229,7 +230,8 @@ ProcedureCreate(char *procedureName,
229230
}
230231

231232
i = 0;
232-
values[i++] = PointerGetDatum(procedureName);
233+
namestrcpy(&procname, procedureName);
234+
values[i++] = NameGetDatum(&procname);
233235
values[i++] = Int32GetDatum(GetUserId());
234236
values[i++] = ObjectIdGetDatum(languageObjectId);
235237

src/backend/catalog/pg_type.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.21 1998/03/30 17:46:45 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.22 1998/04/01 15:35:08 scrappy Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -160,6 +160,7 @@ TypeShellMakeWithOpenRelation(Relation pg_type_desc, char *typeName)
160160
Datum values[Natts_pg_type];
161161
char nulls[Natts_pg_type];
162162
Oid typoid;
163+
NameData name;
163164
TupleDesc tupDesc;
164165

165166
/* ----------------
@@ -177,7 +178,8 @@ TypeShellMakeWithOpenRelation(Relation pg_type_desc, char *typeName)
177178
* ----------------
178179
*/
179180
i = 0;
180-
values[i++] = (Datum) typeName; /* 1 */
181+
namestrcpy(&name, typeName);
182+
values[i++] = NameGetDatum(&name); /* 1 */
181183
values[i++] = (Datum) InvalidOid; /* 2 */
182184
values[i++] = (Datum) (int16) 0; /* 3 */
183185
values[i++] = (Datum) (int16) 0; /* 4 */
@@ -315,11 +317,9 @@ TypeCreate(char *typeName,
315317
char *procs[4];
316318
bool defined;
317319
ItemPointerData itemPointerData;
320+
NameData name;
318321
TupleDesc tupDesc;
319-
320322
Oid argList[8];
321-
NameData name;
322-
323323

324324
static ScanKeyData typeKey[1] = {
325325
{0, Anum_pg_type_typname, NameEqualRegProcedure}

src/backend/storage/smgr/smgr.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
*
1212
* IDENTIFICATION
13-
* $Header: /cvsroot/pgsql/src/backend/storage/smgr/smgr.c,v 1.13 1998/01/07 21:05:45 momjian Exp $
13+
* $Header: /cvsroot/pgsql/src/backend/storage/smgr/smgr.c,v 1.14 1998/04/01 15:35:33 scrappy Exp $
1414
*
1515
*-------------------------------------------------------------------------
1616
*/
@@ -132,7 +132,7 @@ smgrcreate(int16 which, Relation reln)
132132
int fd;
133133

134134
if ((fd = (*(smgrsw[which].smgr_create)) (reln)) < 0)
135-
elog(ERROR, "cannot open %s",
135+
elog(ERROR, "cannot create %s",
136136
&(reln->rd_rel->relname.data[0]));
137137

138138
return (fd);

0 commit comments

Comments
 (0)