diff --git a/ext/ldap/config.m4 b/ext/ldap/config.m4 index 036d1d35593..947cebca33a 100644 --- a/ext/ldap/config.m4 +++ b/ext/ldap/config.m4 @@ -204,7 +204,7 @@ if test "$PHP_LDAP" != "no"; then dnl Solaris 2.8 claims to be 2004 API, but doesn't have dnl ldap_parse_reference() nor ldap_start_tls_s() - AC_CHECK_FUNCS([ldap_parse_result ldap_parse_reference ldap_start_tls_s]) + AC_CHECK_FUNCS([ldap_parse_result ldap_parse_reference ldap_start_tls_s ldap_control_find]) dnl dnl SASL check diff --git a/ext/ldap/ldap.c b/ext/ldap/ldap.c index b4931424ed7..dbcd2d4ea56 100644 --- a/ext/ldap/ldap.c +++ b/ext/ldap/ldap.c @@ -70,6 +70,14 @@ #define PHP_LDAP_ESCAPE_FILTER 0x01 #define PHP_LDAP_ESCAPE_DN 0x02 +#ifndef HAVE_LDAP_CONTROL_FIND +LDAPControl *ldap_control_find( const char *oid, LDAPControl **ctrls, LDAPControl ***nextctrlp) +{ + assert(nextctrlp == NULL); + return ldap_find_control(oid, ctrls); +} +#endif + typedef struct { LDAP *link; #if defined(HAVE_3ARG_SETREBINDPROC) diff --git a/ext/opcache/Optimizer/block_pass.c b/ext/opcache/Optimizer/block_pass.c index 75ad47c63c1..95320508905 100644 --- a/ext/opcache/Optimizer/block_pass.c +++ b/ext/opcache/Optimizer/block_pass.c @@ -693,7 +693,8 @@ static void zend_optimize_block(zend_code_block *block, zend_op_array *op_array, */ if (opline->opcode == ZEND_IS_EQUAL || opline->opcode == ZEND_IS_NOT_EQUAL || - opline->opcode == ZEND_CASE) { + /* CASE variable will be deleted later by FREE, so we can't optimize it */ + (opline->opcode == ZEND_CASE && (ZEND_OP1_TYPE(opline) & (IS_CONST|IS_CV)))) { if (ZEND_OP1_TYPE(opline) == IS_CONST && (Z_TYPE(ZEND_OP1_LITERAL(opline)) == IS_FALSE || Z_TYPE(ZEND_OP1_LITERAL(opline)) == IS_TRUE)) { diff --git a/sapi/phpdbg/phpdbg_opcode.c b/sapi/phpdbg/phpdbg_opcode.c index ab5a1d9d500..31da7b076b7 100644 --- a/sapi/phpdbg/phpdbg_opcode.c +++ b/sapi/phpdbg/phpdbg_opcode.c @@ -88,7 +88,7 @@ char *phpdbg_decode_opline(zend_op_array *ops, zend_op *op, HashTable *vars) /*{ switch (op->opcode) { /* TODO: ZEND_FAST_CALL, ZEND_FAST_RET op2 */ case ZEND_JMPZNZ: - asprintf(&decode[2], "J%u or J%" PRIu32, op->op2.opline_num, op->extended_value); + asprintf(&decode[2], "J%u or J%" PRIu32, OP_JMP_ADDR(op, op->op2) - ops->opcodes, ZEND_OFFSET_TO_OPLINE(op, op->extended_value) - ops->opcodes); break; case ZEND_JMPZ: