diff options
author | Bruce Momjian <bruce@momjian.us> | 2002-09-02 06:11:43 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2002-09-02 06:11:43 +0000 |
commit | a12b4e279bc12a7cd7b7d679fcac4689ac4aba7b (patch) | |
tree | ff120ff0c156829d771bdc874fe8fbb2aa4fbf6e /src/backend | |
parent | 48e1a39924d9e0674306156a6519cf5688c67c43 (diff) | |
download | postgresql-a12b4e279bc12a7cd7b7d679fcac4689ac4aba7b.tar.gz postgresql-a12b4e279bc12a7cd7b7d679fcac4689ac4aba7b.zip |
I checked all the previous string handling errors and most of them were
already fixed by You. However there were a few left and attached patch
should fix the rest of them.
I used StringInfo only in 2 places and both of them are inside debug
ifdefs. Only performance penalty will come from using strlen() like all
the other code does.
I also modified some of the already patched parts by changing
snprintf(buf, 2 * BUFSIZE, ... style lines to
snprintf(buf, sizeof(buf), ... where buf is an array.
Jukka Holappa
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/parser/analyze.c | 4 | ||||
-rw-r--r-- | src/backend/storage/file/fd.c | 8 | ||||
-rw-r--r-- | src/backend/utils/adt/ri_triggers.c | 62 |
3 files changed, 37 insertions, 37 deletions
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c index 7abb2abfd60..9896011df39 100644 --- a/src/backend/parser/analyze.c +++ b/src/backend/parser/analyze.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.246 2002/08/29 07:22:22 ishii Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.247 2002/09/02 06:11:42 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -2153,7 +2153,7 @@ transformSetOperationTree(ParseState *pstate, SelectStmt *stmt) /* * Make the leaf query be a subquery in the top-level rangetable. */ - snprintf(selectName, 32, "*SELECT* %d", length(pstate->p_rtable) + 1); + snprintf(selectName, sizeof(selectName), "*SELECT* %d", length(pstate->p_rtable) + 1); rte = addRangeTableEntryForSubquery(pstate, selectQuery, makeAlias(selectName, NIL), diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c index a3b959fe8f8..83c97fb7550 100644 --- a/src/backend/storage/file/fd.c +++ b/src/backend/storage/file/fd.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/file/fd.c,v 1.94 2002/09/02 02:47:03 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/file/fd.c,v 1.95 2002/09/02 06:11:42 momjian Exp $ * * NOTES: * @@ -344,14 +344,14 @@ _dump_lru(void) Vfd *vfdP = &VfdCache[mru]; char buf[2048]; - sprintf(buf, "LRU: MOST %d ", mru); + snprintf(buf, sizeof(buf), "LRU: MOST %d ", mru); while (mru != 0) { mru = vfdP->lruLessRecently; vfdP = &VfdCache[mru]; - sprintf(buf + strlen(buf), "%d ", mru); + snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%d ", mru); } - sprintf(buf + strlen(buf), "LEAST"); + snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "LEAST"); elog(LOG, buf); } #endif /* FDDEBUG */ diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c index f50f240fc35..f6d56d0d553 100644 --- a/src/backend/utils/adt/ri_triggers.c +++ b/src/backend/utils/adt/ri_triggers.c @@ -17,7 +17,7 @@ * * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.40 2002/07/30 16:33:21 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.41 2002/09/02 06:11:42 momjian Exp $ * * ---------- */ @@ -262,7 +262,7 @@ RI_FKey_check(PG_FUNCTION_ARGS) * ---------- */ quoteRelationName(pkrelname, pk_rel); - sprintf(querystr, "SELECT 1 FROM ONLY %s x FOR UPDATE OF x", + snprintf(querystr, sizeof(querystr), "SELECT 1 FROM ONLY %s x FOR UPDATE OF x", pkrelname); /* @@ -413,13 +413,13 @@ RI_FKey_check(PG_FUNCTION_ARGS) * ---------- */ quoteRelationName(pkrelname, pk_rel); - sprintf(querystr, "SELECT 1 FROM ONLY %s x", pkrelname); + snprintf(querystr, sizeof(querystr), "SELECT 1 FROM ONLY %s x", pkrelname); querysep = "WHERE"; for (i = 0; i < qkey.nkeypairs; i++) { quoteOneName(attname, tgargs[RI_FIRST_ATTNAME_ARGNO + i * 2 + RI_KEYPAIR_PK_IDX]); - sprintf(querystr + strlen(querystr), " %s %s = $%d", + snprintf(querystr + strlen(querystr), sizeof(querystr) - strlen(querystr), " %s %s = $%d", querysep, attname, i+1); querysep = "AND"; queryoids[i] = SPI_gettypeid(fk_rel->rd_att, @@ -614,13 +614,13 @@ ri_Check_Pk_Match(Relation pk_rel, HeapTuple old_row, Oid tgoid, int match_type, * ---------- */ quoteRelationName(pkrelname, pk_rel); - sprintf(querystr, "SELECT 1 FROM ONLY %s x", pkrelname); + snprintf(querystr, sizeof(querystr), "SELECT 1 FROM ONLY %s x", pkrelname); querysep = "WHERE"; for (i = 0; i < qkey.nkeypairs; i++) { quoteOneName(attname, tgargs[RI_FIRST_ATTNAME_ARGNO + i * 2 + RI_KEYPAIR_PK_IDX]); - sprintf(querystr + strlen(querystr), " %s %s = $%d", + snprintf(querystr + strlen(querystr), sizeof(querystr) - strlen(querystr), " %s %s = $%d", querysep, attname, i+1); querysep = "AND"; queryoids[i] = SPI_gettypeid(pk_rel->rd_att, @@ -816,13 +816,13 @@ RI_FKey_noaction_del(PG_FUNCTION_ARGS) * ---------- */ quoteRelationName(fkrelname, fk_rel); - sprintf(querystr, "SELECT 1 FROM ONLY %s x", fkrelname); + snprintf(querystr, sizeof(querystr), "SELECT 1 FROM ONLY %s x", fkrelname); querysep = "WHERE"; for (i = 0; i < qkey.nkeypairs; i++) { quoteOneName(attname, tgargs[RI_FIRST_ATTNAME_ARGNO + i * 2 + RI_KEYPAIR_FK_IDX]); - sprintf(querystr + strlen(querystr), " %s %s = $%d", + snprintf(querystr + strlen(querystr), sizeof(querystr) - strlen(querystr), " %s %s = $%d", querysep, attname, i+1); querysep = "AND"; queryoids[i] = SPI_gettypeid(pk_rel->rd_att, @@ -1050,13 +1050,13 @@ RI_FKey_noaction_upd(PG_FUNCTION_ARGS) * ---------- */ quoteRelationName(fkrelname, fk_rel); - sprintf(querystr, "SELECT 1 FROM ONLY %s x", fkrelname); + snprintf(querystr, sizeof(querystr), "SELECT 1 FROM ONLY %s x", fkrelname); querysep = "WHERE"; for (i = 0; i < qkey.nkeypairs; i++) { quoteOneName(attname, tgargs[RI_FIRST_ATTNAME_ARGNO + i * 2 + RI_KEYPAIR_FK_IDX]); - sprintf(querystr + strlen(querystr), " %s %s = $%d", + snprintf(querystr + strlen(querystr), sizeof(querystr) - strlen(querystr), " %s %s = $%d", querysep, attname, i+1); querysep = "AND"; queryoids[i] = SPI_gettypeid(pk_rel->rd_att, @@ -1257,13 +1257,13 @@ RI_FKey_cascade_del(PG_FUNCTION_ARGS) * ---------- */ quoteRelationName(fkrelname, fk_rel); - sprintf(querystr, "DELETE FROM ONLY %s", fkrelname); + snprintf(querystr, sizeof(querystr), "DELETE FROM ONLY %s", fkrelname); querysep = "WHERE"; for (i = 0; i < qkey.nkeypairs; i++) { quoteOneName(attname, tgargs[RI_FIRST_ATTNAME_ARGNO + i * 2 + RI_KEYPAIR_FK_IDX]); - sprintf(querystr + strlen(querystr), " %s %s = $%d", + snprintf(querystr + strlen(querystr), sizeof(querystr) - strlen(querystr), " %s %s = $%d", querysep, attname, i+1); querysep = "AND"; queryoids[i] = SPI_gettypeid(pk_rel->rd_att, @@ -1474,7 +1474,7 @@ RI_FKey_cascade_upd(PG_FUNCTION_ARGS) * ---------- */ quoteRelationName(fkrelname, fk_rel); - sprintf(querystr, "UPDATE ONLY %s SET", fkrelname); + snprintf(querystr, sizeof(querystr), "UPDATE ONLY %s SET", fkrelname); qualstr[0] = '\0'; querysep = ""; qualsep = "WHERE"; @@ -1482,9 +1482,9 @@ RI_FKey_cascade_upd(PG_FUNCTION_ARGS) { quoteOneName(attname, tgargs[RI_FIRST_ATTNAME_ARGNO + i * 2 + RI_KEYPAIR_FK_IDX]); - sprintf(querystr + strlen(querystr), "%s %s = $%d", + snprintf(querystr + strlen(querystr), sizeof(querystr) - strlen(querystr), "%s %s = $%d", querysep, attname, i+1); - sprintf(qualstr + strlen(qualstr), " %s %s = $%d", + snprintf(qualstr + strlen(qualstr), sizeof(qualstr) - strlen(qualstr), " %s %s = $%d", qualsep, attname, j+1); querysep = ","; qualsep = "AND"; @@ -1698,13 +1698,13 @@ RI_FKey_restrict_del(PG_FUNCTION_ARGS) * ---------- */ quoteRelationName(fkrelname, fk_rel); - sprintf(querystr, "SELECT 1 FROM ONLY %s x", fkrelname); + snprintf(querystr, sizeof(querystr), "SELECT 1 FROM ONLY %s x", fkrelname); querysep = "WHERE"; for (i = 0; i < qkey.nkeypairs; i++) { quoteOneName(attname, tgargs[RI_FIRST_ATTNAME_ARGNO + i * 2 + RI_KEYPAIR_FK_IDX]); - sprintf(querystr + strlen(querystr), " %s %s = $%d", + snprintf(querystr + strlen(querystr), sizeof(querystr) - strlen(querystr), " %s %s = $%d", querysep, attname, i+1); querysep = "AND"; queryoids[i] = SPI_gettypeid(pk_rel->rd_att, @@ -1926,13 +1926,13 @@ RI_FKey_restrict_upd(PG_FUNCTION_ARGS) * ---------- */ quoteRelationName(fkrelname, fk_rel); - sprintf(querystr, "SELECT 1 FROM ONLY %s x", fkrelname); + snprintf(querystr, sizeof(querystr), "SELECT 1 FROM ONLY %s x", fkrelname); querysep = "WHERE"; for (i = 0; i < qkey.nkeypairs; i++) { quoteOneName(attname, tgargs[RI_FIRST_ATTNAME_ARGNO + i * 2 + RI_KEYPAIR_FK_IDX]); - sprintf(querystr + strlen(querystr), " %s %s = $%d", + snprintf(querystr + strlen(querystr), sizeof(querystr) - strlen(querystr), " %s %s = $%d", querysep, attname, i+1); querysep = "AND"; queryoids[i] = SPI_gettypeid(pk_rel->rd_att, @@ -2140,7 +2140,7 @@ RI_FKey_setnull_del(PG_FUNCTION_ARGS) * ---------- */ quoteRelationName(fkrelname, fk_rel); - sprintf(querystr, "UPDATE ONLY %s SET", fkrelname); + snprintf(querystr, sizeof(querystr), "UPDATE ONLY %s SET", fkrelname); qualstr[0] = '\0'; querysep = ""; qualsep = "WHERE"; @@ -2148,9 +2148,9 @@ RI_FKey_setnull_del(PG_FUNCTION_ARGS) { quoteOneName(attname, tgargs[RI_FIRST_ATTNAME_ARGNO + i * 2 + RI_KEYPAIR_FK_IDX]); - sprintf(querystr + strlen(querystr), "%s %s = NULL", + snprintf(querystr + strlen(querystr), sizeof(querystr) - strlen(querystr), "%s %s = NULL", querysep, attname); - sprintf(qualstr + strlen(qualstr), " %s %s = $%d", + snprintf(qualstr + strlen(qualstr), sizeof(qualstr) - strlen(qualstr), " %s %s = $%d", qualsep, attname, i+1); querysep = ","; qualsep = "AND"; @@ -2384,7 +2384,7 @@ RI_FKey_setnull_upd(PG_FUNCTION_ARGS) * ---------- */ quoteRelationName(fkrelname, fk_rel); - sprintf(querystr, "UPDATE ONLY %s SET", fkrelname); + snprintf(querystr, sizeof(querystr), "UPDATE ONLY %s SET", fkrelname); qualstr[0] = '\0'; querysep = ""; qualsep = "WHERE"; @@ -2400,11 +2400,11 @@ RI_FKey_setnull_upd(PG_FUNCTION_ARGS) !ri_OneKeyEqual(pk_rel, i, old_row, new_row, &qkey, RI_KEYPAIR_PK_IDX)) { - sprintf(querystr + strlen(querystr), "%s %s = NULL", + snprintf(querystr + strlen(querystr), sizeof(querystr) - strlen(querystr), "%s %s = NULL", querysep, attname); querysep = ","; } - sprintf(qualstr + strlen(qualstr), " %s %s = $%d", + snprintf(qualstr + strlen(qualstr), sizeof(qualstr) - strlen(qualstr), " %s %s = $%d", qualsep, attname, i+1); qualsep = "AND"; queryoids[i] = SPI_gettypeid(pk_rel->rd_att, @@ -2616,7 +2616,7 @@ RI_FKey_setdefault_del(PG_FUNCTION_ARGS) * ---------- */ quoteRelationName(fkrelname, fk_rel); - sprintf(querystr, "UPDATE ONLY %s SET", fkrelname); + snprintf(querystr, sizeof(querystr), "UPDATE ONLY %s SET", fkrelname); qualstr[0] = '\0'; querysep = ""; qualsep = "WHERE"; @@ -2624,9 +2624,9 @@ RI_FKey_setdefault_del(PG_FUNCTION_ARGS) { quoteOneName(attname, tgargs[RI_FIRST_ATTNAME_ARGNO + i * 2 + RI_KEYPAIR_FK_IDX]); - sprintf(querystr + strlen(querystr), "%s %s = NULL", + snprintf(querystr + strlen(querystr), sizeof(querystr) - strlen(querystr), "%s %s = NULL", querysep, attname); - sprintf(qualstr + strlen(qualstr), " %s %s = $%d", + snprintf(qualstr + strlen(qualstr), sizeof(qualstr) - strlen(qualstr), " %s %s = $%d", qualsep, attname, i+1); querysep = ","; qualsep = "AND"; @@ -2885,7 +2885,7 @@ RI_FKey_setdefault_upd(PG_FUNCTION_ARGS) * ---------- */ quoteRelationName(fkrelname, fk_rel); - sprintf(querystr, "UPDATE ONLY %s SET", fkrelname); + snprintf(querystr, sizeof(querystr), "UPDATE ONLY %s SET", fkrelname); qualstr[0] = '\0'; querysep = ""; qualsep = "WHERE"; @@ -2901,11 +2901,11 @@ RI_FKey_setdefault_upd(PG_FUNCTION_ARGS) !ri_OneKeyEqual(pk_rel, i, old_row, new_row, &qkey, RI_KEYPAIR_PK_IDX)) { - sprintf(querystr + strlen(querystr), "%s %s = NULL", + snprintf(querystr + strlen(querystr), sizeof(querystr) - strlen(querystr), "%s %s = NULL", querysep, attname); querysep = ","; } - sprintf(qualstr + strlen(qualstr), " %s %s = $%d", + snprintf(qualstr + strlen(qualstr), sizeof(qualstr) - strlen(qualstr), " %s %s = $%d", qualsep, attname, i+1); qualsep = "AND"; queryoids[i] = SPI_gettypeid(pk_rel->rd_att, |