mirror of
https://github.com/php/php-src.git
synced 2026-04-04 22:52:40 +02:00
Merge branch 'PHP-7.0'
* PHP-7.0: Fix mem leak and improve test portability (Senthil)
This commit is contained in:
@@ -1922,6 +1922,10 @@ php_oci_connection *php_oci_do_connect_ex(char *username, int username_len, char
|
||||
smart_str_append_unsigned_ex(&hashed_details, session_mode, 0);
|
||||
smart_str_0(&hashed_details);
|
||||
|
||||
if (persistent) {
|
||||
smart_str_appendl_ex(&hashed_details, "pc", sizeof("pc") - 1, 0);
|
||||
}
|
||||
|
||||
/* make it lowercase */
|
||||
/* PHPNG TODO is this safe to do? What about interned strings? */
|
||||
php_strtolower(hashed_details.s->val, hashed_details.s->len);
|
||||
@@ -1996,14 +2000,20 @@ php_oci_connection *php_oci_do_connect_ex(char *username, int username_len, char
|
||||
if (!ping_done && (*(connection->next_pingp) > 0) && (timestamp >= *(connection->next_pingp)) && !php_oci_connection_ping(connection)) {
|
||||
/* server died */
|
||||
} else {
|
||||
php_oci_connection *tmp;
|
||||
php_oci_connection *tmp = (php_oci_connection *) NULL;
|
||||
zval *tmp_val = (zval *) NULL;
|
||||
|
||||
/* okay, the connection is open and the server is still alive */
|
||||
connection->used_this_request = 1;
|
||||
tmp = (php_oci_connection *)connection->id->ptr;
|
||||
|
||||
if (tmp != NULL && tmp->hash_key->len == hashed_details.s->len &&
|
||||
memcmp(tmp->hash_key->val, hashed_details.s->val, tmp->hash_key->len) == 0) {
|
||||
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) &&
|
||||
(tmp->hash_key->len == hashed_details.s->len) &&
|
||||
(memcmp(tmp->hash_key->val, hashed_details.s->val, tmp->hash_key->len) == 0)) {
|
||||
connection = tmp;
|
||||
++GC_REFCOUNT(connection->id);
|
||||
/* do nothing */
|
||||
} else {
|
||||
@@ -2366,6 +2376,10 @@ static int php_oci_connection_close(php_oci_connection *connection)
|
||||
connection->private_spool = NULL;
|
||||
}
|
||||
|
||||
if (GC_REFCOUNT(connection->hash_key) >= 2) {
|
||||
zend_hash_del(&EG(regular_list), connection->hash_key);
|
||||
}
|
||||
|
||||
if (connection->hash_key) {
|
||||
pefree(connection->hash_key, connection->is_persistent);
|
||||
connection->hash_key = NULL;
|
||||
|
||||
@@ -10,6 +10,8 @@ if (!(isset($matches[0]) && $matches[1] < 12)) {
|
||||
die("skip expected output only valid when using pre-Oracle 12c database");
|
||||
}
|
||||
?>
|
||||
--ENV--
|
||||
NLS_LANG=
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
@@ -153,104 +155,104 @@ string(2) "96"
|
||||
string(2) "97"
|
||||
string(2) "98"
|
||||
string(2) "99"
|
||||
string(2) "10"
|
||||
string(2) "10"
|
||||
string(2) "10"
|
||||
string(2) "10"
|
||||
string(2) "10"
|
||||
string(2) "10"
|
||||
string(2) "10"
|
||||
string(2) "10"
|
||||
string(2) "10"
|
||||
string(2) "10"
|
||||
string(2) "11"
|
||||
string(2) "11"
|
||||
string(2) "11"
|
||||
string(2) "11"
|
||||
string(2) "11"
|
||||
string(2) "11"
|
||||
string(2) "11"
|
||||
string(2) "11"
|
||||
string(2) "11"
|
||||
string(2) "11"
|
||||
string(2) "12"
|
||||
string(2) "12"
|
||||
string(2) "12"
|
||||
string(2) "12"
|
||||
string(2) "12"
|
||||
string(2) "12"
|
||||
string(2) "12"
|
||||
string(2) "12"
|
||||
string(2) "12"
|
||||
string(2) "12"
|
||||
string(2) "13"
|
||||
string(2) "13"
|
||||
string(2) "13"
|
||||
string(2) "13"
|
||||
string(2) "13"
|
||||
string(2) "13"
|
||||
string(2) "13"
|
||||
string(2) "13"
|
||||
string(2) "13"
|
||||
string(2) "13"
|
||||
string(2) "14"
|
||||
string(2) "14"
|
||||
string(2) "14"
|
||||
string(2) "14"
|
||||
string(2) "14"
|
||||
string(2) "14"
|
||||
string(2) "14"
|
||||
string(2) "14"
|
||||
string(2) "14"
|
||||
string(2) "14"
|
||||
string(2) "15"
|
||||
string(2) "15"
|
||||
string(2) "15"
|
||||
string(2) "15"
|
||||
string(2) "15"
|
||||
string(2) "15"
|
||||
string(2) "15"
|
||||
string(2) "15"
|
||||
string(2) "15"
|
||||
string(2) "15"
|
||||
string(2) "16"
|
||||
string(2) "16"
|
||||
string(2) "16"
|
||||
string(2) "16"
|
||||
string(2) "16"
|
||||
string(2) "16"
|
||||
string(2) "16"
|
||||
string(2) "16"
|
||||
string(2) "16"
|
||||
string(2) "16"
|
||||
string(2) "17"
|
||||
string(2) "17"
|
||||
string(2) "17"
|
||||
string(2) "17"
|
||||
string(2) "17"
|
||||
string(2) "17"
|
||||
string(2) "17"
|
||||
string(2) "17"
|
||||
string(2) "17"
|
||||
string(2) "17"
|
||||
string(2) "18"
|
||||
string(2) "18"
|
||||
string(2) "18"
|
||||
string(2) "18"
|
||||
string(2) "18"
|
||||
string(2) "18"
|
||||
string(2) "18"
|
||||
string(2) "18"
|
||||
string(2) "18"
|
||||
string(2) "18"
|
||||
string(2) "19"
|
||||
string(2) "19"
|
||||
string(2) "19"
|
||||
string(2) "19"
|
||||
string(2) "19"
|
||||
string(2) "19"
|
||||
string(2) "19"
|
||||
string(2) "19"
|
||||
string(2) "19"
|
||||
string(2) "19"
|
||||
string(3) "100"
|
||||
string(3) "101"
|
||||
string(3) "102"
|
||||
string(3) "103"
|
||||
string(3) "104"
|
||||
string(3) "105"
|
||||
string(3) "106"
|
||||
string(3) "107"
|
||||
string(3) "108"
|
||||
string(3) "109"
|
||||
string(3) "110"
|
||||
string(3) "111"
|
||||
string(3) "112"
|
||||
string(3) "113"
|
||||
string(3) "114"
|
||||
string(3) "115"
|
||||
string(3) "116"
|
||||
string(3) "117"
|
||||
string(3) "118"
|
||||
string(3) "119"
|
||||
string(3) "120"
|
||||
string(3) "121"
|
||||
string(3) "122"
|
||||
string(3) "123"
|
||||
string(3) "124"
|
||||
string(3) "125"
|
||||
string(3) "126"
|
||||
string(3) "127"
|
||||
string(3) "128"
|
||||
string(3) "129"
|
||||
string(3) "130"
|
||||
string(3) "131"
|
||||
string(3) "132"
|
||||
string(3) "133"
|
||||
string(3) "134"
|
||||
string(3) "135"
|
||||
string(3) "136"
|
||||
string(3) "137"
|
||||
string(3) "138"
|
||||
string(3) "139"
|
||||
string(3) "140"
|
||||
string(3) "141"
|
||||
string(3) "142"
|
||||
string(3) "143"
|
||||
string(3) "144"
|
||||
string(3) "145"
|
||||
string(3) "146"
|
||||
string(3) "147"
|
||||
string(3) "148"
|
||||
string(3) "149"
|
||||
string(3) "150"
|
||||
string(3) "151"
|
||||
string(3) "152"
|
||||
string(3) "153"
|
||||
string(3) "154"
|
||||
string(3) "155"
|
||||
string(3) "156"
|
||||
string(3) "157"
|
||||
string(3) "158"
|
||||
string(3) "159"
|
||||
string(3) "160"
|
||||
string(3) "161"
|
||||
string(3) "162"
|
||||
string(3) "163"
|
||||
string(3) "164"
|
||||
string(3) "165"
|
||||
string(3) "166"
|
||||
string(3) "167"
|
||||
string(3) "168"
|
||||
string(3) "169"
|
||||
string(3) "170"
|
||||
string(3) "171"
|
||||
string(3) "172"
|
||||
string(3) "173"
|
||||
string(3) "174"
|
||||
string(3) "175"
|
||||
string(3) "176"
|
||||
string(3) "177"
|
||||
string(3) "178"
|
||||
string(3) "179"
|
||||
string(3) "180"
|
||||
string(3) "181"
|
||||
string(3) "182"
|
||||
string(3) "183"
|
||||
string(3) "184"
|
||||
string(3) "185"
|
||||
string(3) "186"
|
||||
string(3) "187"
|
||||
string(3) "188"
|
||||
string(3) "189"
|
||||
string(3) "190"
|
||||
string(3) "191"
|
||||
string(3) "192"
|
||||
string(3) "193"
|
||||
string(3) "194"
|
||||
string(3) "195"
|
||||
string(3) "196"
|
||||
string(3) "197"
|
||||
string(3) "198"
|
||||
string(3) "199"
|
||||
Done
|
||||
|
||||
Reference in New Issue
Block a user