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]; */ -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php