jani Fri Aug 10 12:17:26 2007 UTC Added files: (Branch: PHP_5_2) /php-src/ext/standard/tests/array bug42233.phpt
Modified files: /php-src/ext/standard array.c Log: - Fix the fix for bug #42233 http://cvs.php.net/viewvc.cgi/php-src/ext/standard/array.c?r1=1.308.2.21.2.31&r2=1.308.2.21.2.32&diff_format=u Index: php-src/ext/standard/array.c diff -u php-src/ext/standard/array.c:1.308.2.21.2.31 php-src/ext/standard/array.c:1.308.2.21.2.32 --- php-src/ext/standard/array.c:1.308.2.21.2.31 Wed Aug 8 07:41:09 2007 +++ php-src/ext/standard/array.c Fri Aug 10 12:17:26 2007 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: array.c,v 1.308.2.21.2.31 2007/08/08 07:41:09 jani Exp $ */ +/* $Id: array.c,v 1.308.2.21.2.32 2007/08/10 12:17:26 jani Exp $ */ #include "php.h" #include "php_ini.h" @@ -1282,32 +1282,34 @@ static int php_valid_var_name(char *var_name, int len) /* {{{ */ { - int i; + int i, ch; if (!var_name) return 0; /* These are allowed as first char: [a-zA-Z_\x7f-\xff] */ - if (var_name[0] == '_' || - (((int)((unsigned char *)var_name)[0]) >= 65 /* A */ && /* Z */ 90 <= ((int)((unsigned char *)var_name)[0])) || - (((int)((unsigned char *)var_name)[0]) >= 97 /* a */ && /* z */ 122 <= ((int)((unsigned char *)var_name)[0])) || - (((int)((unsigned char *)var_name)[0]) >= 127 /* 0x7f */ && /* 0xff */ 255 <= ((int)((unsigned char *)var_name)[0])) + ch = (int)((unsigned char *)var_name)[0]; + if (var_name[0] != '_' && + (ch < 65 /* A */ || /* Z */ ch > 90) && + (ch < 97 /* a */ || /* z */ ch > 122) && + (ch < 127 /* 0x7f */ || /* 0xff */ ch > 255) ) { - /* And these as the rest: [a-zA-Z0-9_\x7f-\xff] */ - if (len > 1) { - for (i = 1; i < len; i++) { - if (var_name[i] == '_' || - (((int)((unsigned char *)var_name)[i]) >= 48 /* 0 */ && /* 9 */ 57 <= ((int)((unsigned char *)var_name)[i])) || - (((int)((unsigned char *)var_name)[i]) >= 65 /* A */ && /* Z */ 90 <= ((int)((unsigned char *)var_name)[i])) || - (((int)((unsigned char *)var_name)[i]) >= 97 /* a */ && /* z */ 122 <= ((int)((unsigned char *)var_name)[i])) || - (((int)((unsigned char *)var_name)[i]) >= 127 /* 0x7f */ && /* 0xff */ 255 <= ((int)((unsigned char *)var_name)[i])) - ) { } else { - return 0; - } + return 0; + } + + /* And these as the rest: [a-zA-Z0-9_\x7f-\xff] */ + if (len > 1) { + for (i = 1; i < len; i++) { + ch = (int)((unsigned char *)var_name)[i]; + if (var_name[i] != '_' && + (ch < 48 /* 0 */ || /* 9 */ ch > 57) && + (ch < 65 /* A */ || /* Z */ ch > 90) && + (ch < 97 /* a */ || /* z */ ch > 122) && + (ch < 127 /* 0x7f */ || /* 0xff */ ch > 255) + ) { + return 0; } } - } else { - return 0; } return 1; } http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/bug42233.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/array/bug42233.phpt +++ php-src/ext/standard/tests/array/bug42233.phpt -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php