zval **data;
char *string_key;
uint string_key_len;
+ ulong num_key;
zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(form_variables), &pos);
while (zend_hash_get_current_data_ex(Z_ARRVAL_P(form_variables), (void **)&data, &pos) == SUCCESS) {
- zend_hash_get_current_key_ex(Z_ARRVAL_P(form_variables), &string_key, &string_key_len, NULL, 0, &pos);
-
- ZEND_SET_SYMBOL_WITH_LENGTH(&EG(symbol_table), string_key, string_key_len, *data, (*data)->refcount+1, 0);
+ /* we only register string keys, since we cannot have $1234 */
+ if (zend_hash_get_current_key_ex(Z_ARRVAL_P(form_variables), &string_key, &string_key_len, &num_key, 0, &pos) == HASH_KEY_IS_STRING) {
+ ZEND_SET_SYMBOL_WITH_LENGTH(&EG(symbol_table), string_key, string_key_len, *data, (*data)->refcount+1, 0);
+ }
zend_hash_move_forward_ex(Z_ARRVAL_P(form_variables), &pos);
}
}