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