From: Michael Wallner Date: Wed, 3 Dec 2014 10:04:55 +0000 (+0100) Subject: fix NULL deref with circular refs X-Git-Tag: v0.6.0RC1~23 X-Git-Url: https://git.m6w6.name/?a=commitdiff_plain;h=863e93c99c953d39665df785cd3a9486d16c995b;p=m6w6%2Fext-pq fix NULL deref with circular refs --- diff --git a/src/php_pqcur.c b/src/php_pqcur.c index 16057e8..1ff10da 100644 --- a/src/php_pqcur.c +++ b/src/php_pqcur.c @@ -31,7 +31,7 @@ static HashTable php_pqcur_object_prophandlers; static void cur_close(php_pqcur_object_t *obj TSRMLS_DC) { - if (obj->intern->open) { + if (obj->intern->open && obj->intern->conn->intern) { PGresult *res; smart_str cmd = {0}; diff --git a/src/php_pqtxn.c b/src/php_pqtxn.c index 0f5c4eb..b48cf7e 100644 --- a/src/php_pqtxn.c +++ b/src/php_pqtxn.c @@ -54,7 +54,7 @@ static void php_pqtxn_object_free(void *o TSRMLS_DC) fprintf(stderr, "FREE txn(#%d) %p (conn(#%d): %p)\n", obj->zv.handle, obj, obj->intern->conn->zv.handle, obj->intern->conn); #endif if (obj->intern) { - if (obj->intern->open) { + if (obj->intern->open && obj->intern->conn->intern) { PGresult *res = PQexec(obj->intern->conn->intern->conn, "ROLLBACK"); if (res) {