aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2002-09-02 06:11:43 +0000
committerBruce Momjian <bruce@momjian.us>2002-09-02 06:11:43 +0000
commita12b4e279bc12a7cd7b7d679fcac4689ac4aba7b (patch)
treeff120ff0c156829d771bdc874fe8fbb2aa4fbf6e /src/backend
parent48e1a39924d9e0674306156a6519cf5688c67c43 (diff)
downloadpostgresql-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.c4
-rw-r--r--src/backend/storage/file/fd.c8
-rw-r--r--src/backend/utils/adt/ri_triggers.c62
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,