]> granicus.if.org Git - php/commitdiff
Handle numeric keys passed via GPC
authorIlia Alshanetsky <iliaa@php.net>
Tue, 17 Jun 2003 17:15:02 +0000 (17:15 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Tue, 17 Jun 2003 17:15:02 +0000 (17:15 +0000)
main/main.c

index 1be845c08e57fac9282925579b62e9dd47c71a09..211c1c326e1c77b5b8b169806254d9b595dccf9d 100644 (file)
@@ -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);
                }
        }