diff options
author | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2006-05-28 17:23:29 +0000 |
---|---|---|
committer | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2006-05-28 17:23:29 +0000 |
commit | 117d73a9e7af61f6742e3d2b46f1dfbe3e02b9ca (patch) | |
tree | f2a5179957d63d898ade09424c91e51f273f9fa7 /src/interfaces/libpq/fe-exec.c | |
parent | 7a6676d9df6e89d6ecdfacd8b377a881dc0e237d (diff) | |
download | postgresql-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.c | 8 |
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); } |