mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
Defend against omitted paramLengths[] array in PQsendQueryParams.
Per Volkan Yazici.
This commit is contained in:
parent
0b8e46e49b
commit
3ace84594e
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/interfaces/libpq/fe-exec.c,v 1.167 2005/04/29 13:42:21 momjian Exp $
|
* $PostgreSQL: pgsql/src/interfaces/libpq/fe-exec.c,v 1.168 2005/06/09 20:01:16 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -30,7 +30,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* keep this in same order as ExecStatusType in libpq-fe.h */
|
/* keep this in same order as ExecStatusType in libpq-fe.h */
|
||||||
char *const pgresStatus[] = {
|
char *const pgresStatus[] = {
|
||||||
"PGRES_EMPTY_QUERY",
|
"PGRES_EMPTY_QUERY",
|
||||||
"PGRES_COMMAND_OK",
|
"PGRES_COMMAND_OK",
|
||||||
"PGRES_TUPLES_OK",
|
"PGRES_TUPLES_OK",
|
||||||
@ -960,7 +960,14 @@ PQsendQueryGuts(PGconn *conn,
|
|||||||
if (paramFormats && paramFormats[i] != 0)
|
if (paramFormats && paramFormats[i] != 0)
|
||||||
{
|
{
|
||||||
/* binary parameter */
|
/* binary parameter */
|
||||||
nbytes = paramLengths[i];
|
if (paramLengths)
|
||||||
|
nbytes = paramLengths[i];
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printfPQExpBuffer(&conn->errorMessage,
|
||||||
|
libpq_gettext("length must be given for binary parameter\n"));
|
||||||
|
goto sendFailed;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/interfaces/libpq/libpq-fe.h,v 1.116 2004/12/31 22:03:50 pgsql Exp $
|
* $PostgreSQL: pgsql/src/interfaces/libpq/libpq-fe.h,v 1.117 2005/06/09 20:01:16 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -156,7 +156,7 @@ typedef struct _PQprintOpt
|
|||||||
char *fieldSep; /* field separator */
|
char *fieldSep; /* field separator */
|
||||||
char *tableOpt; /* insert to HTML <table ...> */
|
char *tableOpt; /* insert to HTML <table ...> */
|
||||||
char *caption; /* HTML <caption> */
|
char *caption; /* HTML <caption> */
|
||||||
char **fieldName; /* null terminated array of repalcement
|
char **fieldName; /* null terminated array of replacement
|
||||||
* field names */
|
* field names */
|
||||||
} PQprintOpt;
|
} PQprintOpt;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user