summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Jones <christopher.jones@oracle.com>2015-11-25 12:42:27 +1100
committerAnatol Belski <ab@php.net>2015-11-25 03:20:22 +0100
commit59d15ce9d472e0bc7dfb3c7b22baaa0275575e4e (patch)
treeeb1cdb0fd082c69e427d4819a01e455c9420def2
parent030a97cb13a31b61b2f29bf66d47e49ed33e398b (diff)
downloadphp-git-59d15ce9d472e0bc7dfb3c7b22baaa0275575e4e.tar.gz
Fix remaining gcov valgrind issuesphp-7.0.0RC8
-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;