summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Jones <christopher.jones@oracle.com>2015-11-25 12:42:27 +1100
committerChristopher Jones <christopher.jones@oracle.com>2015-11-25 12:42:27 +1100
commitd10ee1eef11d4758efd7f0df14562c8b51891efb (patch)
treedf5d6924dded01d28443210d192a879f9ae5ba4a
parent80d9dcafe0ee130c52ed2eb33b302e02b93620d4 (diff)
downloadphp-git-d10ee1eef11d4758efd7f0df14562c8b51891efb.tar.gz
Fix remaining gcov valgrind issues
-rw-r--r--ext/oci8/oci8.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/ext/oci8/oci8.c b/ext/oci8/oci8.c
index 1030cec8a0..cf5290cd9e 100644
--- a/ext/oci8/oci8.c
+++ b/ext/oci8/oci8.c
@@ -2003,17 +2003,19 @@ php_oci_connection *php_oci_do_connect_ex(char *username, int username_len, char
/* okay, the connection is open and the server is still alive */
connection->used_this_request = 1;
- tmp_val = zend_hash_index_find(&EG(regular_list), connection->id->handle);
- if ((tmp_val != NULL) && (Z_TYPE_P(tmp_val) == IS_RESOURCE)) {
- tmp = Z_RES_VAL_P(tmp_val);
- }
+ if (connection->id) {
+ tmp_val = zend_hash_index_find(&EG(regular_list), connection->id->handle);
+ if ((tmp_val != NULL) && (Z_TYPE_P(tmp_val) == IS_RESOURCE)) {
+ tmp = Z_RES_VAL_P(tmp_val);
+ }
- if ((tmp_val != NULL) && (tmp != NULL) &&
- (ZSTR_LEN(tmp->hash_key) == ZSTR_LEN(hashed_details.s)) &&
- (memcmp(ZSTR_VAL(tmp->hash_key), ZSTR_VAL(hashed_details.s), ZSTR_LEN(tmp->hash_key)) == 0)) {
- connection = tmp;
- ++GC_REFCOUNT(connection->id);
- /* do nothing */
+ if ((tmp_val != NULL) && (tmp != NULL) &&
+ (ZSTR_LEN(tmp->hash_key) == ZSTR_LEN(hashed_details.s)) &&
+ (memcmp(ZSTR_VAL(tmp->hash_key), ZSTR_VAL(hashed_details.s),
+ ZSTR_LEN(tmp->hash_key)) == 0)) {
+ connection = tmp;
+ ++GC_REFCOUNT(connection->id);
+ }
} else {
PHP_OCI_REGISTER_RESOURCE(connection, le_pconnection);
/* Persistent connections: For old close semantics we artificially
@@ -2467,6 +2469,7 @@ int php_oci_connection_release(php_oci_connection *connection)
connection->svc = NULL;
connection->server = NULL;
connection->session = NULL;
+ connection->id = NULL;
connection->is_attached = connection->is_open = connection->rb_on_disconnect = connection->used_this_request = 0;
connection->is_stub = 1;