summaryrefslogtreecommitdiff
path: root/ext/pdo_pgsql
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2004-05-25 14:12:15 +0000
committerIlia Alshanetsky <iliaa@php.net>2004-05-25 14:12:15 +0000
commitce3891347fc1e6b0aefca8c705ea0ae8f5697c1a (patch)
treefbe575062feefce2a13fbd5f8bc205a857070453 /ext/pdo_pgsql
parent6304e5d7cb108d6d528b1b54e65b247a1dbf98f1 (diff)
downloadphp-git-ce3891347fc1e6b0aefca8c705ea0ae8f5697c1a.tar.gz
Fixed memory leak.
Diffstat (limited to 'ext/pdo_pgsql')
-rw-r--r--ext/pdo_pgsql/pgsql_driver.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/ext/pdo_pgsql/pgsql_driver.c b/ext/pdo_pgsql/pgsql_driver.c
index 95ceff294d..334bf2e016 100644
--- a/ext/pdo_pgsql/pgsql_driver.c
+++ b/ext/pdo_pgsql/pgsql_driver.c
@@ -83,14 +83,17 @@ static int pdo_pgsql_fetch_error_func(pdo_dbh_t *dbh, pdo_stmt_t *stmt, zval *in
static int pgsql_handle_closer(pdo_dbh_t *dbh TSRMLS_DC) /* {{{ */
{
pdo_pgsql_db_handle *H = (pdo_pgsql_db_handle *)dbh->driver_data;
-
- if (H->server) {
- PQfinish(H->server);
- H->server = NULL;
- }
- if (H->einfo.errmsg) {
- efree(H->einfo.errmsg);
- H->einfo.errmsg = NULL;
+ if (H) {
+ if (H->server) {
+ PQfinish(H->server);
+ H->server = NULL;
+ }
+ if (H->einfo.errmsg) {
+ efree(H->einfo.errmsg);
+ H->einfo.errmsg = NULL;
+ }
+ pefree(H, dbh->is_persistent);
+ H = NULL;
}
return 0;
}