mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
ldap: Use cheaper checks for getting a string (#20652)
Avoids loading globals, the return register can be used directly.
This commit is contained in:
@@ -425,7 +425,7 @@ static void _php_ldap_control_to_array(LDAP *ld, LDAPControl* ctrl, zval* array,
|
||||
static int php_ldap_control_from_array(LDAP *ld, LDAPControl** ctrl, const HashTable *control_ht)
|
||||
{
|
||||
zval* val;
|
||||
zend_string *control_oid;
|
||||
zend_string *control_oid, *control_oid_tmp;
|
||||
char** ldap_attrs = NULL;
|
||||
LDAPSortKey** sort_keys = NULL;
|
||||
zend_string *tmpstring = NULL, **tmpstrings1 = NULL, **tmpstrings2 = NULL;
|
||||
@@ -436,8 +436,8 @@ static int php_ldap_control_from_array(LDAP *ld, LDAPControl** ctrl, const HashT
|
||||
return -1;
|
||||
}
|
||||
|
||||
control_oid = zval_get_string(val);
|
||||
if (EG(exception)) {
|
||||
control_oid = zval_try_get_tmp_string(val, &control_oid_tmp);
|
||||
if (!control_oid) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -453,8 +453,8 @@ static int php_ldap_control_from_array(LDAP *ld, LDAPControl** ctrl, const HashT
|
||||
|
||||
if ((val = zend_hash_find(control_ht, ZSTR_KNOWN(ZEND_STR_VALUE))) != NULL) {
|
||||
if (Z_TYPE_P(val) != IS_ARRAY) {
|
||||
tmpstring = zval_get_string(val);
|
||||
if (EG(exception)) {
|
||||
tmpstring = zval_try_get_string(val);
|
||||
if (!tmpstring) {
|
||||
rc = -1;
|
||||
goto failure;
|
||||
}
|
||||
@@ -468,8 +468,8 @@ static int php_ldap_control_from_array(LDAP *ld, LDAPControl** ctrl, const HashT
|
||||
pagesize = zval_get_long(tmp);
|
||||
}
|
||||
if ((tmp = zend_hash_str_find(Z_ARRVAL_P(val), "cookie", sizeof("cookie") - 1)) != NULL) {
|
||||
tmpstring = zval_get_string(tmp);
|
||||
if (EG(exception)) {
|
||||
tmpstring = zval_try_get_string(tmp);
|
||||
if (!tmpstring) {
|
||||
rc = -1;
|
||||
goto failure;
|
||||
}
|
||||
@@ -488,8 +488,8 @@ static int php_ldap_control_from_array(LDAP *ld, LDAPControl** ctrl, const HashT
|
||||
rc = -1;
|
||||
zend_value_error("%s(): Control must have a \"filter\" key", get_active_function_name());
|
||||
} else {
|
||||
zend_string* assert = zval_get_string(tmp);
|
||||
if (EG(exception)) {
|
||||
zend_string* assert = zval_try_get_string(tmp);
|
||||
if (!assert) {
|
||||
rc = -1;
|
||||
goto failure;
|
||||
}
|
||||
@@ -516,8 +516,8 @@ static int php_ldap_control_from_array(LDAP *ld, LDAPControl** ctrl, const HashT
|
||||
rc = -1;
|
||||
php_error_docref(NULL, E_WARNING, "Failed to allocate control value");
|
||||
} else {
|
||||
tmpstring = zval_get_string(tmp);
|
||||
if (EG(exception)) {
|
||||
tmpstring = zval_try_get_string(tmp);
|
||||
if (!tmpstring) {
|
||||
rc = -1;
|
||||
goto failure;
|
||||
}
|
||||
@@ -555,8 +555,8 @@ static int php_ldap_control_from_array(LDAP *ld, LDAPControl** ctrl, const HashT
|
||||
goto failure;
|
||||
}
|
||||
|
||||
tmpstrings1[num_tmpstrings1] = zval_get_string(attr);
|
||||
if (EG(exception)) {
|
||||
tmpstrings1[num_tmpstrings1] = zval_try_get_string(attr);
|
||||
if (!tmpstrings1[num_tmpstrings1]) {
|
||||
rc = -1;
|
||||
goto failure;
|
||||
}
|
||||
@@ -603,8 +603,8 @@ static int php_ldap_control_from_array(LDAP *ld, LDAPControl** ctrl, const HashT
|
||||
goto failure;
|
||||
}
|
||||
sort_keys[i] = emalloc(sizeof(LDAPSortKey));
|
||||
tmpstrings1[num_tmpstrings1] = zval_get_string(tmp);
|
||||
if (EG(exception)) {
|
||||
tmpstrings1[num_tmpstrings1] = zval_try_get_string(tmp);
|
||||
if (!tmpstrings1[num_tmpstrings1]) {
|
||||
rc = -1;
|
||||
goto failure;
|
||||
}
|
||||
@@ -612,8 +612,8 @@ static int php_ldap_control_from_array(LDAP *ld, LDAPControl** ctrl, const HashT
|
||||
++num_tmpstrings1;
|
||||
|
||||
if ((tmp = zend_hash_str_find(Z_ARRVAL_P(sortkey), "oid", sizeof("oid") - 1)) != NULL) {
|
||||
tmpstrings2[num_tmpstrings2] = zval_get_string(tmp);
|
||||
if (EG(exception)) {
|
||||
tmpstrings2[num_tmpstrings2] = zval_try_get_string(tmp);
|
||||
if (!tmpstrings2[num_tmpstrings2]) {
|
||||
rc = -1;
|
||||
goto failure;
|
||||
}
|
||||
@@ -659,8 +659,8 @@ static int php_ldap_control_from_array(LDAP *ld, LDAPControl** ctrl, const HashT
|
||||
}
|
||||
|
||||
if ((tmp = zend_hash_str_find(Z_ARRVAL_P(val), "attrvalue", sizeof("attrvalue") - 1)) != NULL) {
|
||||
tmpstring = zval_get_string(tmp);
|
||||
if (EG(exception)) {
|
||||
tmpstring = zval_try_get_string(tmp);
|
||||
if (!tmpstring) {
|
||||
rc = -1;
|
||||
goto failure;
|
||||
}
|
||||
@@ -685,8 +685,8 @@ static int php_ldap_control_from_array(LDAP *ld, LDAPControl** ctrl, const HashT
|
||||
}
|
||||
|
||||
if ((tmp = zend_hash_str_find(Z_ARRVAL_P(val), "context", sizeof("context") - 1)) != NULL) {
|
||||
tmpstring = zval_get_string(tmp);
|
||||
if (EG(exception)) {
|
||||
tmpstring = zval_try_get_string(tmp);
|
||||
if (!tmpstring) {
|
||||
rc = -1;
|
||||
goto failure;
|
||||
}
|
||||
@@ -714,7 +714,7 @@ static int php_ldap_control_from_array(LDAP *ld, LDAPControl** ctrl, const HashT
|
||||
}
|
||||
|
||||
failure:
|
||||
zend_string_release(control_oid);
|
||||
zend_tmp_string_release(control_oid_tmp);
|
||||
if (tmpstring != NULL) {
|
||||
zend_string_release(tmpstring);
|
||||
}
|
||||
@@ -2791,8 +2791,8 @@ PHP_FUNCTION(ldap_modify_batch)
|
||||
zend_ulong value_index = 0;
|
||||
zval *modification_value_zv = NULL;
|
||||
ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(modification_values), modification_value_zv) {
|
||||
zend_string *modval = zval_get_string(modification_value_zv);
|
||||
if (EG(exception)) {
|
||||
zend_string *modval = zval_try_get_string(modification_value_zv);
|
||||
if (!modval) {
|
||||
RETVAL_FALSE;
|
||||
ldap_mods[modification_index]->mod_bvalues[value_index] = NULL;
|
||||
num_mods = modification_index + 1;
|
||||
|
||||
Reference in New Issue
Block a user