[PATCH] fix for bug #18654
| From: | Christophe Sollet | Date: | Mon, 19 Aug 2002 13:42:12 +0000 |
| Subject: | [PATCH] fix for bug #18654 | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-87074@lists.php.net to get a copy of this message | ||
hi,
this patch fix bug #18654 by extending the nvexp definition.
The diff contains the resulting re2c var_unserializer.c.
Index: var_unserializer.c
===================================================================
RCS file: /repository/php4/ext/standard/var_unserializer.c,v
retrieving revision 1.17
diff -u -r1.17 var_unserializer.c
--- var_unserializer.c 19 Aug 2002 10:58:18 -0000 1.17 +++ var_unserializer.c 19 Aug 2002 13:21:38 -0000@@ -1,4 +1,4 @@ -/* Generated by re2c 0.5 on Sun Aug 18 15:18:22 2002 */ +/* Generated by re2c 0.5 on Mon Aug 19 15:11:57 2002 */ #line 1 "var_unserializer.re" #include "php.h" #include "ext/standard/php_var.h" @@ -581,13 +581,24 @@
yy46: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy47: if(yych <= '/'){
- if(yych == '.') goto yy58;
- goto yy2;
+yy47: if(yych <= ':'){
+ if(yych <= '.'){
+ if(yych <= '-') goto yy2;
+ goto yy58;
+ } else {
+ if(yych <= '/') goto yy2;
+ if(yych <= '9') goto yy46;
+ goto yy2;
+ }
} else {
- if(yych <= '9') goto yy46;
- if(yych == ';') goto yy51;
- goto yy2;
+ if(yych <= 'E'){
+ if(yych <= ';') goto yy51;
+ if(yych <= 'D') goto yy2;
+ goto yy53;
+ } else {
+ if(yych == 'e') goto yy53;
+ goto yy2;
+ }
}
yy48: yych = *++YYCURSOR;
if(yych <= '/') goto yy2;
Index: var_unserializer.re
===================================================================
RCS file: /repository/php4/ext/standard/var_unserializer.re,v
retrieving revision 1.10
diff -u -r1.10 var_unserializer.re
--- var_unserializer.re 18 Aug 2002 12:22:28 -0000 1.10 +++ var_unserializer.re 19 Aug 2002 13:21:38 -0000@@ -92,7 +92,7 @@ /*!re2c iv = [+-]? [0-9]+; nv = [+-]? ([0-9]* "." [0-9]+|[0-9]+ "." [0-9]+); -nvexp = nv [eE] [+-]? iv; +nvexp = (iv | nv) [eE] [+-]? iv; any = [\000-\277]; */