fix NULL deref with circular refs
authorMichael Wallner <mike@php.net>
Wed, 3 Dec 2014 10:04:55 +0000 (11:04 +0100)
committerMichael Wallner <mike@php.net>
Wed, 3 Dec 2014 10:04:55 +0000 (11:04 +0100)
src/php_pqcur.c
src/php_pqtxn.c

index 16057e8..1ff10da 100644 (file)
@@ -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};
 
index 0f5c4eb..b48cf7e 100644 (file)
@@ -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) {