From 3ace84594e3626f12caddfe3a2efed1a2e2982ee Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 9 Jun 2005 20:01:16 +0000 Subject: Defend against omitted paramLengths[] array in PQsendQueryParams. Per Volkan Yazici. --- src/interfaces/libpq/fe-exec.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/interfaces/libpq/fe-exec.c') diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c index a8ef01ad0da..1a01a4c627c 100644 --- a/src/interfaces/libpq/fe-exec.c +++ b/src/interfaces/libpq/fe-exec.c @@ -8,7 +8,7 @@ * * * 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 /* keep this in same order as ExecStatusType in libpq-fe.h */ -char *const pgresStatus[] = { +char *const pgresStatus[] = { "PGRES_EMPTY_QUERY", "PGRES_COMMAND_OK", "PGRES_TUPLES_OK", @@ -960,7 +960,14 @@ PQsendQueryGuts(PGconn *conn, if (paramFormats && paramFormats[i] != 0) { /* 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 { -- cgit v1.2.3