From: Stanislav Malyshev Date: Wed, 18 Mar 2015 00:10:49 +0000 (-0700) Subject: forgot to commit this one X-Git-Tag: PRE_PHP7_NSAPI_REMOVAL~611 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d76b293ac71aa5bd4e9a433192afef6e0dd5a4ee;p=php forgot to commit this one --- diff --git a/ext/standard/var_unserializer.c b/ext/standard/var_unserializer.c index 053a680fb0..5149fb376b 100644 --- a/ext/standard/var_unserializer.c +++ b/ext/standard/var_unserializer.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 */ +/* Generated by re2c 0.13.7.5 */ #line 1 "ext/standard/var_unserializer.re" /* +----------------------------------------------------------------------+ @@ -392,6 +392,8 @@ string_key: return 0; } + var_push_dtor(var_hash, data); + if (elements && *(*p-1) != ';' && *(*p-1) != '}') { (*p)--; return 0; @@ -522,7 +524,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER) start = cursor; -#line 526 "ext/standard/var_unserializer.c" +#line 528 "ext/standard/var_unserializer.c" { YYCTYPE yych; static const unsigned char yybm[] = { @@ -582,9 +584,9 @@ yy2: yych = *(YYMARKER = ++YYCURSOR); if (yych == ':') goto yy95; yy3: -#line 873 "ext/standard/var_unserializer.re" +#line 875 "ext/standard/var_unserializer.re" { return 0; } -#line 588 "ext/standard/var_unserializer.c" +#line 590 "ext/standard/var_unserializer.c" yy4: yych = *(YYMARKER = ++YYCURSOR); if (yych == ':') goto yy89; @@ -627,13 +629,13 @@ yy13: goto yy3; yy14: ++YYCURSOR; -#line 867 "ext/standard/var_unserializer.re" +#line 869 "ext/standard/var_unserializer.re" { /* this is the case where we have less data than planned */ php_error_docref(NULL, E_NOTICE, "Unexpected end of serialized data"); return 0; /* not sure if it should be 0 or 1 here? */ } -#line 637 "ext/standard/var_unserializer.c" +#line 639 "ext/standard/var_unserializer.c" yy16: yych = *++YYCURSOR; goto yy3; @@ -659,11 +661,12 @@ yy20: if (yybm[0+yych] & 128) { goto yy20; } - if (yych != ':') goto yy18; + if (yych <= '/') goto yy18; + if (yych >= ';') goto yy18; yych = *++YYCURSOR; if (yych != '"') goto yy18; ++YYCURSOR; -#line 722 "ext/standard/var_unserializer.re" +#line 724 "ext/standard/var_unserializer.re" { size_t len, len2, len3, maxlen; zend_long elements; @@ -808,7 +811,7 @@ yy20: return object_common2(UNSERIALIZE_PASSTHRU, elements); } -#line 812 "ext/standard/var_unserializer.c" +#line 815 "ext/standard/var_unserializer.c" yy25: yych = *++YYCURSOR; if (yych <= ',') { @@ -833,7 +836,7 @@ yy27: yych = *++YYCURSOR; if (yych != '"') goto yy18; ++YYCURSOR; -#line 714 "ext/standard/var_unserializer.re" +#line 716 "ext/standard/var_unserializer.re" { //??? INIT_PZVAL(rval); @@ -841,7 +844,7 @@ yy27: return object_common2(UNSERIALIZE_PASSTHRU, object_common1(UNSERIALIZE_PASSTHRU, ZEND_STANDARD_CLASS_DEF_PTR)); } -#line 845 "ext/standard/var_unserializer.c" +#line 848 "ext/standard/var_unserializer.c" yy32: yych = *++YYCURSOR; if (yych == '+') goto yy33; @@ -862,7 +865,7 @@ yy34: yych = *++YYCURSOR; if (yych != '{') goto yy18; ++YYCURSOR; -#line 693 "ext/standard/var_unserializer.re" +#line 695 "ext/standard/var_unserializer.re" { zend_long elements = parse_iv(start + 2); /* use iv() not uiv() in order to check data range */ @@ -883,7 +886,7 @@ yy34: return finish_nested_data(UNSERIALIZE_PASSTHRU); } -#line 887 "ext/standard/var_unserializer.c" +#line 890 "ext/standard/var_unserializer.c" yy39: yych = *++YYCURSOR; if (yych == '+') goto yy40; @@ -904,7 +907,7 @@ yy41: yych = *++YYCURSOR; if (yych != '"') goto yy18; ++YYCURSOR; -#line 665 "ext/standard/var_unserializer.re" +#line 667 "ext/standard/var_unserializer.re" { size_t len, maxlen; zend_string *str; @@ -932,7 +935,7 @@ yy41: ZVAL_STR(rval, str); return 1; } -#line 936 "ext/standard/var_unserializer.c" +#line 939 "ext/standard/var_unserializer.c" yy46: yych = *++YYCURSOR; if (yych == '+') goto yy47; @@ -953,7 +956,7 @@ yy48: yych = *++YYCURSOR; if (yych != '"') goto yy18; ++YYCURSOR; -#line 638 "ext/standard/var_unserializer.re" +#line 640 "ext/standard/var_unserializer.re" { size_t len, maxlen; char *str; @@ -980,7 +983,7 @@ yy48: ZVAL_STRINGL(rval, str, len); return 1; } -#line 984 "ext/standard/var_unserializer.c" +#line 987 "ext/standard/var_unserializer.c" yy53: yych = *++YYCURSOR; if (yych <= '/') { @@ -1068,7 +1071,7 @@ yy61: } yy63: ++YYCURSOR; -#line 629 "ext/standard/var_unserializer.re" +#line 631 "ext/standard/var_unserializer.re" { #if SIZEOF_ZEND_LONG == 4 use_double: @@ -1077,7 +1080,7 @@ use_double: ZVAL_DOUBLE(rval, zend_strtod((const char *)start + 2, NULL)); return 1; } -#line 1081 "ext/standard/var_unserializer.c" +#line 1084 "ext/standard/var_unserializer.c" yy65: yych = *++YYCURSOR; if (yych <= ',') { @@ -1136,7 +1139,7 @@ yy73: yych = *++YYCURSOR; if (yych != ';') goto yy18; ++YYCURSOR; -#line 613 "ext/standard/var_unserializer.re" +#line 615 "ext/standard/var_unserializer.re" { *p = YYCURSOR; @@ -1152,7 +1155,7 @@ yy73: return 1; } -#line 1156 "ext/standard/var_unserializer.c" +#line 1159 "ext/standard/var_unserializer.c" yy76: yych = *++YYCURSOR; if (yych == 'N') goto yy73; @@ -1179,7 +1182,7 @@ yy79: if (yych <= '9') goto yy79; if (yych != ';') goto yy18; ++YYCURSOR; -#line 587 "ext/standard/var_unserializer.re" +#line 589 "ext/standard/var_unserializer.re" { #if SIZEOF_ZEND_LONG == 4 int digits = YYCURSOR - start - 3; @@ -1205,7 +1208,7 @@ yy79: ZVAL_LONG(rval, parse_iv(start + 2)); return 1; } -#line 1209 "ext/standard/var_unserializer.c" +#line 1212 "ext/standard/var_unserializer.c" yy83: yych = *++YYCURSOR; if (yych <= '/') goto yy18; @@ -1213,22 +1216,22 @@ yy83: yych = *++YYCURSOR; if (yych != ';') goto yy18; ++YYCURSOR; -#line 581 "ext/standard/var_unserializer.re" +#line 583 "ext/standard/var_unserializer.re" { *p = YYCURSOR; ZVAL_BOOL(rval, parse_iv(start + 2)); return 1; } -#line 1223 "ext/standard/var_unserializer.c" +#line 1226 "ext/standard/var_unserializer.c" yy87: ++YYCURSOR; -#line 575 "ext/standard/var_unserializer.re" +#line 577 "ext/standard/var_unserializer.re" { *p = YYCURSOR; ZVAL_NULL(rval); return 1; } -#line 1232 "ext/standard/var_unserializer.c" +#line 1235 "ext/standard/var_unserializer.c" yy89: yych = *++YYCURSOR; if (yych <= ',') { @@ -1251,7 +1254,7 @@ yy91: if (yych <= '9') goto yy91; if (yych != ';') goto yy18; ++YYCURSOR; -#line 552 "ext/standard/var_unserializer.re" +#line 554 "ext/standard/var_unserializer.re" { zend_long id; @@ -1274,7 +1277,7 @@ yy91: return 1; } -#line 1278 "ext/standard/var_unserializer.c" +#line 1281 "ext/standard/var_unserializer.c" yy95: yych = *++YYCURSOR; if (yych <= ',') { @@ -1297,7 +1300,7 @@ yy97: if (yych <= '9') goto yy97; if (yych != ';') goto yy18; ++YYCURSOR; -#line 530 "ext/standard/var_unserializer.re" +#line 532 "ext/standard/var_unserializer.re" { zend_long id; @@ -1319,9 +1322,9 @@ yy97: return 1; } -#line 1323 "ext/standard/var_unserializer.c" +#line 1326 "ext/standard/var_unserializer.c" } -#line 875 "ext/standard/var_unserializer.re" +#line 877 "ext/standard/var_unserializer.re" return 0;