fixes #24
authorMichael Wallner <mike@php.net>
Wed, 3 May 2017 07:16:43 +0000 (09:16 +0200)
committerMichael Wallner <mike@php.net>
Wed, 3 May 2017 07:16:43 +0000 (09:16 +0200)
Segmentation fault after pg_terminate_backend

src/php_pqconn.c

index f2a0e0ca8005bf8a5b4fc40664bc11a7b075d742..d0ddfef9317c8036cc666f835dea8197c82bee63 100644 (file)
@@ -1146,11 +1146,12 @@ static PHP_METHOD(pqconn, getResult) {
                        throw_exce(EX_UNINITIALIZED, "pq\\Connection not initialized");
                } else {
                        PGresult *res = PQgetResult(obj->intern->conn);
+                       php_pq_object_t *res_obj;
 
-                       if (!res) {
-                               RETVAL_NULL();
+                       if (res && (res_obj = PQresultInstanceData(res, php_pqconn_event))) {
+                               php_pq_object_to_zval_no_addref(res_obj, return_value);
                        } else {
-                               php_pq_object_to_zval_no_addref(PQresultInstanceData(res, php_pqconn_event), return_value);
+                               RETVAL_NULL();
                        }
 
                        php_pqconn_notify_listeners(obj);