Use StrNCpy not strncpy to fill hash key, to ensure the resulting key
is null-terminated. I think this is not a real bug because the parser would always have truncated the identifier to NAMEDATALEN-1 already, but let's be safe. Per report from Klocwork.
This commit is contained in:
parent
8d424b3217
commit
de68155298
@ -10,7 +10,7 @@
|
|||||||
* Copyright (c) 2002-2003, PostgreSQL Global Development Group
|
* Copyright (c) 2002-2003, PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/commands/prepare.c,v 1.23 2003/08/08 21:41:32 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/commands/prepare.c,v 1.23.4.1 2004/12/03 21:26:52 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -297,8 +297,7 @@ StorePreparedStatement(const char *stmt_name,
|
|||||||
|
|
||||||
/* Check for pre-existing entry of same name */
|
/* Check for pre-existing entry of same name */
|
||||||
/* See notes in FetchPreparedStatement */
|
/* See notes in FetchPreparedStatement */
|
||||||
MemSet(key, 0, sizeof(key));
|
StrNCpy(key, stmt_name, sizeof(key));
|
||||||
strncpy(key, stmt_name, sizeof(key));
|
|
||||||
|
|
||||||
hash_search(prepared_queries, key, HASH_FIND, &found);
|
hash_search(prepared_queries, key, HASH_FIND, &found);
|
||||||
|
|
||||||
@ -371,8 +370,7 @@ FetchPreparedStatement(const char *stmt_name, bool throwError)
|
|||||||
* the hash package is picky enough that it needs to be
|
* the hash package is picky enough that it needs to be
|
||||||
* NULL-padded out to the appropriate length to work correctly.
|
* NULL-padded out to the appropriate length to work correctly.
|
||||||
*/
|
*/
|
||||||
MemSet(key, 0, sizeof(key));
|
StrNCpy(key, stmt_name, sizeof(key));
|
||||||
strncpy(key, stmt_name, sizeof(key));
|
|
||||||
|
|
||||||
entry = (PreparedStatement *) hash_search(prepared_queries,
|
entry = (PreparedStatement *) hash_search(prepared_queries,
|
||||||
key,
|
key,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user