diff options
author | Christopher Jones <christopher.jones@oracle.com> | 2015-11-25 12:42:27 +1100 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2015-11-25 03:20:22 +0100 |
commit | 59d15ce9d472e0bc7dfb3c7b22baaa0275575e4e (patch) | |
tree | eb1cdb0fd082c69e427d4819a01e455c9420def2 | |
parent | 030a97cb13a31b61b2f29bf66d47e49ed33e398b (diff) | |
download | php-git-59d15ce9d472e0bc7dfb3c7b22baaa0275575e4e.tar.gz |
Fix remaining gcov valgrind issuesphp-7.0.0RC8
-rw-r--r-- | ext/oci8/oci8.c | 23 |
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; |