diff options
-rw-r--r-- | NEWS | 6 | ||||
-rw-r--r-- | ext/pcre/php_pcre.c | 2 | ||||
-rw-r--r-- | ext/pcre/tests/bug75355.phpt | 15 |
3 files changed, 23 insertions, 0 deletions
@@ -93,6 +93,8 @@ PHP NEWS - PCRE: . Implemented https://wiki.php.net/rfc/pcre2-migration (Anatol, Dmitry) + . Fixed bug #75355 (preg_quote() does not quote # control character). + (Michael Moravec) - PDO_DBlib: . Implemented request #69592 (allow 0-column rowsets to be skipped @@ -109,6 +111,10 @@ PHP NEWS - PDO SQLite . Add support for additional open flags +- PCRE: + . Fixed bug #75355 (preg_quote() does not quote # control character). + (Majkl578) + - phar: . Fixed bug #74991 (include_path has a 4096 char limit in some cases). (bwbroersma) diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c index 3b6f795a8c..47f22a57f8 100644 --- a/ext/pcre/php_pcre.c +++ b/ext/pcre/php_pcre.c @@ -2629,6 +2629,7 @@ static PHP_FUNCTION(preg_quote) case '|': case ':': case '-': + case '#': extra_len++; break; @@ -2678,6 +2679,7 @@ static PHP_FUNCTION(preg_quote) case '|': case ':': case '-': + case '#': *q++ = '\\'; *q++ = c; break; diff --git a/ext/pcre/tests/bug75355.phpt b/ext/pcre/tests/bug75355.phpt new file mode 100644 index 0000000000..d37d781bc1 --- /dev/null +++ b/ext/pcre/tests/bug75355.phpt @@ -0,0 +1,15 @@ +--TEST-- +Bug #75355 (preg_quote() does not quote # control character) +--FILE-- +<?php + +var_dump(preg_quote('#')); + +var_dump(preg_match('~^(' . preg_quote('hello#world', '~') . ')\z~x', 'hello#world', $m)); + +var_dump($m[1]); +?> +--EXPECT-- +string(2) "\#" +int(1) +string(11) "hello#world" |