com php-src: Fix bug #80523: NEWS Zend/zend_language_scanne r.l
| From: | Nikita Popov | Date: | Wed, 16 Dec 2020 09:20:20 +0000 |
| Subject: | com php-src: Fix bug #80523: NEWS Zend/zend_language_scanne r.l | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-114476@lists.php.net to get a copy of this message | ||
Commit: 118ff03335d67c19817ff83d89e634fcd39275ff
Author: Nikita Popov <nikita.ppv@gmail.com> Wed, 16 Dec 2020 10:16:50 +0100
Parents: 078cdd8f766051e3cd87c0c19ea728105cf16fcd
Branches: PHP-7.4 PHP-8.0 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=118ff03335d67c19817ff83d89e634fcd39275ff
Log:
Fix bug #80523
Don't truncate the file length to unsigned int...
I have no idea whether that fully fixes the problem because the
process gets OOM killed before finishing, but at least the
immediate parse error is gone now.
Bugs:
https://bugs.php.net/80523
Changed paths:
M NEWS
M Zend/zend_language_scanner.l
Diff:
diff --git a/NEWS b/NEWS
index 2d89d66773f..a62d492d0d0 100644
--- a/NEWS
+++ b/NEWS
@@ -2,7 +2,8 @@ PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2021, PHP 7.4.15
-
+- Core:
+ . Fixed bug #80523 (bogus parse error on >4GB source code). (Nikita)
07 Jan 2021, PHP 7.4.14
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index 3cb739330a6..0d515ca9015 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -177,7 +177,7 @@ static void yy_pop_state(void)
zend_stack_del_top(&SCNG(state_stack));
}
-static void yy_scan_buffer(char *str, unsigned int len)
+static void yy_scan_buffer(char *str, size_t len)
{
YYCURSOR = (YYCTYPE*)str;
YYLIMIT = YYCURSOR + len;
@@ -554,7 +554,7 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle)
}
}
SCNG(yy_start) = (unsigned char *)buf;
- yy_scan_buffer(buf, (unsigned int)size);
+ yy_scan_buffer(buf, size);
} else {
zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
}
@@ -722,7 +722,7 @@ ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename)
}
}
- yy_scan_buffer(buf, (unsigned int)size);
+ yy_scan_buffer(buf, size);
new_compiled_filename = zend_string_init(filename, strlen(filename), 0);
zend_set_compiled_filename(new_compiled_filename);