aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/libpq/fe-exec.c
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2006-05-28 17:23:29 +0000
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2006-05-28 17:23:29 +0000
commit117d73a9e7af61f6742e3d2b46f1dfbe3e02b9ca (patch)
treef2a5179957d63d898ade09424c91e51f273f9fa7 /src/interfaces/libpq/fe-exec.c
parent7a6676d9df6e89d6ecdfacd8b377a881dc0e237d (diff)
downloadpostgresql-117d73a9e7af61f6742e3d2b46f1dfbe3e02b9ca.tar.gz
postgresql-117d73a9e7af61f6742e3d2b46f1dfbe3e02b9ca.zip
Don't call PQclear until the struct is really no longer going to be used.
Per Coverity bug #304. Thanks to Martijn van Oosterhout for reporting it. Zero out the pointer fields of PGresult so that these mistakes are more easily catched, per discussion.
Diffstat (limited to 'src/interfaces/libpq/fe-exec.c')
-rw-r--r--src/interfaces/libpq/fe-exec.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c
index 7b999c85330..71ba05fbca6 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.184 2006/05/23 22:13:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/fe-exec.c,v 1.185 2006/05/28 17:23:29 alvherre Exp $
*
*-------------------------------------------------------------------------
*/
@@ -364,6 +364,12 @@ PQclear(PGresult *res)
if (res->tuples)
free(res->tuples);
+ /* zero out the pointer fields to catch programming errors */
+ res->attDescs = NULL;
+ res->tuples = NULL;
+ res->errFields = NULL;
+ /* res->curBlock was zeroed out earlier */
+
/* Free the PGresult structure itself */
free(res);
}