1
0
mirror of https://github.com/php/php-src.git synced 2026-04-03 22:22:18 +02:00

Merge branch 'master' of git.php.net:/php-src

This commit is contained in:
Xinchen Hui
2015-09-09 18:02:27 +08:00
4 changed files with 233 additions and 14 deletions

View File

@@ -6102,10 +6102,11 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH_R, VAR, ANY)
}
} else {
zend_error(E_WARNING, "Invalid argument supplied for foreach()");
ZEND_VM_C_LABEL(fe_fetch_r_exit):
if (EXPECTED(!EG(exception))) {
ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value);
if (UNEXPECTED(EG(exception))) {
HANDLE_EXCEPTION();
}
ZEND_VM_C_LABEL(fe_fetch_r_exit):
ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value);
ZEND_VM_CONTINUE();
}
@@ -6293,10 +6294,11 @@ ZEND_VM_HANDLER(126, ZEND_FE_FETCH_RW, VAR, ANY)
}
} else {
zend_error(E_WARNING, "Invalid argument supplied for foreach()");
ZEND_VM_C_LABEL(fe_fetch_w_exit):
if (EXPECTED(!EG(exception))) {
ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value);
if (UNEXPECTED(EG(exception))) {
HANDLE_EXCEPTION();
}
ZEND_VM_C_LABEL(fe_fetch_w_exit):
ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value);
ZEND_VM_CONTINUE();
}

View File

@@ -15912,10 +15912,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FETCH_R_SPEC_VAR_HANDLER(ZE
}
} else {
zend_error(E_WARNING, "Invalid argument supplied for foreach()");
fe_fetch_r_exit:
if (EXPECTED(!EG(exception))) {
ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value);
if (UNEXPECTED(EG(exception))) {
HANDLE_EXCEPTION();
}
fe_fetch_r_exit:
ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value);
ZEND_VM_CONTINUE();
}
@@ -16103,10 +16104,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FETCH_RW_SPEC_VAR_HANDLER(Z
}
} else {
zend_error(E_WARNING, "Invalid argument supplied for foreach()");
fe_fetch_w_exit:
if (EXPECTED(!EG(exception))) {
ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value);
if (UNEXPECTED(EG(exception))) {
HANDLE_EXCEPTION();
}
fe_fetch_w_exit:
ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value);
ZEND_VM_CONTINUE();
}

View File

@@ -667,7 +667,7 @@ static void php_set_opts(LDAP *ldap, int sizelimit, int timelimit, int deref, in
/* timelimit */
if (timelimit > -1) {
#if (LDAP_API_VERSION >= 2004) || HAVE_NSLDAP || HAVE_ORALDAP
ldap_get_option(ldap, LDAP_OPT_SIZELIMIT, old_timelimit);
ldap_get_option(ldap, LDAP_OPT_TIMELIMIT, old_timelimit);
ldap_set_option(ldap, LDAP_OPT_TIMELIMIT, &timelimit);
#else
*old_timelimit = ldap->ld_timelimit;
@@ -678,7 +678,7 @@ static void php_set_opts(LDAP *ldap, int sizelimit, int timelimit, int deref, in
/* deref */
if (deref > -1) {
#if (LDAP_API_VERSION >= 2004) || HAVE_NSLDAP || HAVE_ORALDAP
ldap_get_option(ldap, LDAP_OPT_SIZELIMIT, old_deref);
ldap_get_option(ldap, LDAP_OPT_DEREF, old_deref);
ldap_set_option(ldap, LDAP_OPT_DEREF, &deref);
#else
*old_deref = ldap->ld_deref;

View File

@@ -0,0 +1,215 @@
--TEST--
ldap_search() test - test that overrides aren't permanent
--CREDITS--
Tyson Andre <tandre@ifwe.co>
# Based on ldap_search_basic.phpt
--SKIPIF--
<?php
require_once('skipif.inc');
require_once('skipifbindfailure.inc');
?>
--FILE--
<?php
include "connect.inc";
$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
ldap_set_option($link, LDAP_OPT_DEREF, LDAP_DEREF_SEARCHING);
ldap_set_option($link, LDAP_OPT_SIZELIMIT, 123);
ldap_set_option($link, LDAP_OPT_TIMELIMIT, 33);
ldap_set_option($link, LDAP_OPT_NETWORK_TIMEOUT, 44);
insert_dummy_data($link, $base);
var_dump(
$result = ldap_search($link, "$base", "(objectClass=person)", array(), null, 111, 22, LDAP_DEREF_NEVER),
ldap_get_entries($link, $result)
);
var_dump(
ldap_get_option($link, LDAP_OPT_DEREF, $option),
$option,
ldap_get_option($link, LDAP_OPT_SIZELIMIT, $option),
$option,
ldap_get_option($link, LDAP_OPT_TIMELIMIT, $option),
$option,
ldap_get_option($link, LDAP_OPT_NETWORK_TIMEOUT, $option),
$option
);
?>
===DONE===
--CLEAN--
<?php
include "connect.inc";
$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);
remove_dummy_data($link, $base);
?>
--EXPECTF--
resource(%d) of type (ldap result)
array(4) {
["count"]=>
int(3)
[0]=>
array(14) {
["objectclass"]=>
array(2) {
["count"]=>
int(1)
[0]=>
string(6) "person"
}
[0]=>
string(11) "objectclass"
["cn"]=>
array(2) {
["count"]=>
int(1)
[0]=>
string(5) "userA"
}
[1]=>
string(2) "cn"
["sn"]=>
array(2) {
["count"]=>
int(1)
[0]=>
string(7) "testSN1"
}
[2]=>
string(2) "sn"
["userpassword"]=>
array(2) {
["count"]=>
int(1)
[0]=>
string(4) "oops"
}
[3]=>
string(12) "userpassword"
["telephonenumber"]=>
array(2) {
["count"]=>
int(1)
[0]=>
string(14) "xx-xx-xx-xx-xx"
}
[4]=>
string(15) "telephonenumber"
["description"]=>
array(2) {
["count"]=>
int(1)
[0]=>
string(6) "user A"
}
[5]=>
string(11) "description"
["count"]=>
int(6)
["dn"]=>
string(%d) "cn=userA,%s"
}
[1]=>
array(12) {
["objectclass"]=>
array(2) {
["count"]=>
int(1)
[0]=>
string(6) "person"
}
[0]=>
string(11) "objectclass"
["cn"]=>
array(2) {
["count"]=>
int(1)
[0]=>
string(5) "userB"
}
[1]=>
string(2) "cn"
["sn"]=>
array(2) {
["count"]=>
int(1)
[0]=>
string(7) "testSN2"
}
[2]=>
string(2) "sn"
["userpassword"]=>
array(2) {
["count"]=>
int(1)
[0]=>
string(15) "oopsIDitItAgain"
}
[3]=>
string(12) "userpassword"
["description"]=>
array(2) {
["count"]=>
int(1)
[0]=>
string(6) "user B"
}
[4]=>
string(11) "description"
["count"]=>
int(5)
["dn"]=>
string(%d) "cn=userB,%s"
}
[2]=>
array(10) {
["objectclass"]=>
array(2) {
["count"]=>
int(1)
[0]=>
string(6) "person"
}
[0]=>
string(11) "objectclass"
["cn"]=>
array(2) {
["count"]=>
int(1)
[0]=>
string(5) "userC"
}
[1]=>
string(2) "cn"
["sn"]=>
array(2) {
["count"]=>
int(1)
[0]=>
string(7) "testSN3"
}
[2]=>
string(2) "sn"
["userpassword"]=>
array(2) {
["count"]=>
int(1)
[0]=>
string(17) "0r1g1na1 passw0rd"
}
[3]=>
string(12) "userpassword"
["count"]=>
int(4)
["dn"]=>
string(%d) "cn=userC,cn=userB,%s"
}
}
bool(true)
int(1)
bool(true)
int(123)
bool(true)
int(33)
bool(true)
int(44)
===DONE===