Skip to content

Commit 78c0758

Browse files
committed
ext/ldap: Refactor traversal of modification values
1 parent 59713c8 commit 78c0758

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

ext/ldap/ldap.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2688,25 +2688,25 @@ PHP_FUNCTION(ldap_modify_batch)
26882688
ldap_mods[modification_index]->mod_bvalues = safe_emalloc((num_modification_values+1), sizeof(struct berval *), 0);
26892689

26902690
/* for each value */
2691-
for (uint32_t j = 0; j < num_modification_values; j++) {
2692-
/* fetch it */
2693-
zval *fetched = zend_hash_index_find(Z_ARRVAL_P(modification_values), j);
2694-
zend_string *modval = zval_get_string(fetched);
2691+
zend_ulong value_index = 0;
2692+
zval *modification_value_zv = NULL;
2693+
ZEND_HASH_FOREACH_NUM_KEY_VAL(Z_ARRVAL_P(modification_values), value_index, modification_value_zv) {
2694+
zend_string *modval = zval_get_string(modification_value_zv);
26952695
if (EG(exception)) {
26962696
RETVAL_FALSE;
2697-
ldap_mods[modification_index]->mod_bvalues[j] = NULL;
2697+
ldap_mods[modification_index]->mod_bvalues[value_index] = NULL;
26982698
num_mods = modification_index + 1;
26992699
goto cleanup;
27002700
}
27012701

27022702
/* allocate the data struct */
2703-
ldap_mods[modification_index]->mod_bvalues[j] = safe_emalloc(1, sizeof(struct berval), 0);
2703+
ldap_mods[modification_index]->mod_bvalues[value_index] = safe_emalloc(1, sizeof(struct berval), 0);
27042704

27052705
/* fill it */
2706-
ldap_mods[modification_index]->mod_bvalues[j]->bv_len = ZSTR_LEN(modval);
2707-
ldap_mods[modification_index]->mod_bvalues[j]->bv_val = estrndup(ZSTR_VAL(modval), ZSTR_LEN(modval));
2706+
ldap_mods[modification_index]->mod_bvalues[value_index]->bv_len = ZSTR_LEN(modval);
2707+
ldap_mods[modification_index]->mod_bvalues[value_index]->bv_val = estrndup(ZSTR_VAL(modval), ZSTR_LEN(modval));
27082708
zend_string_release(modval);
2709-
}
2709+
} ZEND_HASH_FOREACH_END();
27102710

27112711
/* NULL-terminate values */
27122712
ldap_mods[modification_index]->mod_bvalues[num_modification_values] = NULL;

0 commit comments

Comments
 (0)