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