diff options
| -rw-r--r-- | main/main.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/main/main.c b/main/main.c index 1be845c08e..211c1c326e 100644 --- a/main/main.c +++ b/main/main.c @@ -1588,12 +1588,14 @@ static zend_bool php_auto_globals_create_request(TSRMLS_D) 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); } } |
