From: Nuno Lopes Date: Wed, 28 Jan 2009 22:39:33 +0000 (+0000) Subject: fix bug #47229: preg_quote should escape '-' X-Git-Tag: RELEASE_1_3_5~215 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4ff9ad5bf1d5fc2eb279c5b3765b6406e4b583df;p=php fix bug #47229: preg_quote should escape '-' --- diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c index 0e3390f20a..496418a72e 100644 --- a/ext/pcre/php_pcre.c +++ b/ext/pcre/php_pcre.c @@ -1661,6 +1661,7 @@ static PHP_FUNCTION(preg_quote) case '<': case '|': case ':': + case '-': *q++ = '\\'; *q++ = c; break; diff --git a/ext/pcre/tests/bug47229.phpt b/ext/pcre/tests/bug47229.phpt new file mode 100644 index 0000000000..74dcf20099 --- /dev/null +++ b/ext/pcre/tests/bug47229.phpt @@ -0,0 +1,37 @@ +--TEST-- +Bug #47229 (preg_quote() doesn't escape -) +--FILE-- + +--EXPECT-- +string(13) "\-oh really\?" +array(1) { + [0]=> + string(4) "a---" +} +array(1) { + [0]=> + string(1) "a" +} +array(1) { + [0]=> + string(5) "a----" +} +array(0) { +} diff --git a/ext/pcre/tests/preg_quote_basic.phpt b/ext/pcre/tests/preg_quote_basic.phpt index d4bbe96616..c78f5665c0 100644 --- a/ext/pcre/tests/preg_quote_basic.phpt +++ b/ext/pcre/tests/preg_quote_basic.phpt @@ -17,7 +17,7 @@ var_dump($matches1); --EXPECT-- $string_before looks like: /this *-has \ metacharacters^ in $ -$string_after looks like: \/this \*-has \\ metacharacters\^ in \$, with metacharacters and / (set as delimiter) escaped +$string_after looks like: \/this \*\-has \\ metacharacters\^ in \$, with metacharacters and / (set as delimiter) escaped int(1) array(1) { [0]=>