提交 dd912c69 编写于 作者: B Bruce Momjian

This patches replaces a few more usages of strcpy() and sprintf() when

copying into a fixed-size buffer (in this case, a buffer of
NAMEDATALEN bytes). AFAICT nothing to worry about here, but worth
fixing anyway...

Neil Conway
上级 e0a77f56
......@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/tablecmds.c,v 1.33 2002/08/24 15:00:46 tgl Exp $
* $Header: /cvsroot/pgsql/src/backend/commands/tablecmds.c,v 1.34 2002/08/27 03:56:34 momjian Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -3370,8 +3370,8 @@ AlterTableCreateToastTable(Oid relOid, bool silent)
/*
* Create the toast table and its index
*/
sprintf(toast_relname, "pg_toast_%u", relOid);
sprintf(toast_idxname, "pg_toast_%u_index", relOid);
snprintf(toast_relname, NAMEDATALEN, "pg_toast_%u", relOid);
snprintf(toast_idxname, NAMEDATALEN, "pg_toast_%u_index", relOid);
/* this is pretty painful... need a tuple descriptor */
tupdesc = CreateTemplateTupleDesc(3, WITHOUTOID);
......
......@@ -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.242 2002/08/19 19:33:34 tgl Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.243 2002/08/27 03:56:34 momjian Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -665,7 +665,7 @@ CreateIndexName(char *table_name, char *column_name,
* indexes, only among the indexes we're about to create now; this
* ought to be improved someday.
*/
strcpy(typename, label);
strncpy(typename, label, sizeof(typename));
for (;;)
{
......@@ -685,7 +685,7 @@ CreateIndexName(char *table_name, char *column_name,
/* found a conflict, so try a new name component */
pfree(iname);
sprintf(typename, "%s%d", label, ++pass);
snprintf(typename, sizeof(typename), "%s%d", label, ++pass);
}
return iname;
......
......@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/ipc/shmqueue.c,v 1.21 2002/06/20 20:29:35 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/ipc/shmqueue.c,v 1.22 2002/08/27 03:56:35 momjian Exp $
*
* NOTES
*
......@@ -214,11 +214,11 @@ dumpQ(SHM_QUEUE *q, char *s)
SHM_QUEUE *start = q;
int count = 0;
sprintf(buf, "q prevs: %lx", MAKE_OFFSET(q));
snprintf(buf, sizeof(buf), "q prevs: %lx", MAKE_OFFSET(q));
q = (SHM_QUEUE *) MAKE_PTR(q->prev);
while (q != start)
{
sprintf(elem, "--->%lx", MAKE_OFFSET(q));
snprintf(elem, sizeof(elem), "--->%lx", MAKE_OFFSET(q));
strcat(buf, elem);
q = (SHM_QUEUE *) MAKE_PTR(q->prev);
if (q->prev == MAKE_OFFSET(q))
......@@ -229,16 +229,16 @@ dumpQ(SHM_QUEUE *q, char *s)
break;
}
}
sprintf(elem, "--->%lx", MAKE_OFFSET(q));
snprintf(elem, sizeof(elem), "--->%lx", MAKE_OFFSET(q));
strcat(buf, elem);
elog(SHMQUEUE_DEBUG_ELOG, "%s: %s", s, buf);
sprintf(buf, "q nexts: %lx", MAKE_OFFSET(q));
snprintf(buf, sizeof(buf), "q nexts: %lx", MAKE_OFFSET(q));
count = 0;
q = (SHM_QUEUE *) MAKE_PTR(q->next);
while (q != start)
{
sprintf(elem, "--->%lx", MAKE_OFFSET(q));
snprintf(elem, sizeof(elem), "--->%lx", MAKE_OFFSET(q));
strcat(buf, elem);
q = (SHM_QUEUE *) MAKE_PTR(q->next);
if (q->next == MAKE_OFFSET(q))
......@@ -249,7 +249,7 @@ dumpQ(SHM_QUEUE *q, char *s)
break;
}
}
sprintf(elem, "--->%lx", MAKE_OFFSET(q));
snprintf(elem, sizeof(elem), "--->%lx", MAKE_OFFSET(q));
strcat(buf, elem);
elog(SHMQUEUE_DEBUG_ELOG, "%s: %s", s, buf);
}
......
......@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.76 2002/08/26 17:53:58 tgl Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.77 2002/08/27 03:56:35 momjian Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -136,9 +136,9 @@ aclparse(const char *s, AclItem *aip, unsigned *modechg)
*s != ACL_MODECHG_EQL_CHR)
{
/* we just read a keyword, not a name */
if (strcmp(name, ACL_IDTYPE_GID_KEYWORD) == 0)
if (strncmp(name, ACL_IDTYPE_GID_KEYWORD, sizeof(name)) == 0)
idtype = ACL_IDTYPE_GID;
else if (strcmp(name, ACL_IDTYPE_UID_KEYWORD) != 0)
else if (strncmp(name, ACL_IDTYPE_UID_KEYWORD, sizeof(name)) != 0)
elog(ERROR, "aclparse: bad keyword, must be [group|user]");
s = getid(s, name); /* move s to the name beyond the keyword */
if (name[0] == '\0')
......
......@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.51 2002/08/09 16:45:14 tgl Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.52 2002/08/27 03:56:35 momjian Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -95,7 +95,7 @@ SetDefine(char *querystr, Oid elemType)
if (strcmp(procname, NameStr(proc->proname)) == 0)
{
/* make the real proc name */
sprintf(realprocname, "set%u", setoid);
snprintf(realprocname, sizeof(realprocname), "set%u", setoid);
/* set up the attributes to be modified or kept the same */
repl[0] = 'r';
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册