1
0
mirror of https://github.com/php/php-src.git synced 2026-04-26 09:28:21 +02:00

Fixed bug #45581 (htmlspecialchars() double encoding &#x hex items)

This commit is contained in:
Arnaud Le Blanc
2008-08-10 13:25:53 +00:00
parent 85bc66aa5c
commit eebec53bc0
2 changed files with 20 additions and 6 deletions
+14 -3
View File
@@ -1197,9 +1197,20 @@ encode_amp:
} else {
if (*s == '#') { /* numeric entities */
s++;
while (s < e) {
if (!isdigit(*s++)) {
goto encode_amp;
/* Hex (&#x5A;) */
if (*s == 'x' || *s == 'X') {
s++;
while (s < e) {
if (!isxdigit(*s++)) {
goto encode_amp;
}
}
/* Dec (&#90;)*/
} else {
while (s < e) {
if (!isdigit(*s++)) {
goto encode_amp;
}
}
}
} else { /* text entities */
@@ -6,7 +6,8 @@ $tests = array(
"abc",
"abc&amp;sfdsa",
"test&#043;s &amp; some more &#68;",
"&; &amp &#a; &9;",
"test&#x2b;s &amp; some more &#X44;",
"&; &amp &#a; &9; &#xyz;",
"&kffjadfdhsjfhjasdhffasdfas;",
"&#8787978789",
"&",
@@ -26,8 +27,10 @@ unicode(13) "abc&amp;sfdsa"
unicode(13) "abc&amp;sfdsa"
unicode(33) "test&#043;s &amp; some more &#68;"
unicode(33) "test&#043;s &amp; some more &#68;"
unicode(24) "&; &amp;amp &amp;#a; &9;"
unicode(24) "&; &amp;amp &amp;#a; &9;"
unicode(34) "test&#x2b;s &amp; some more &#X44;"
unicode(34) "test&#x2b;s &amp; some more &#X44;"
unicode(35) "&; &amp;amp &amp;#a; &9; &amp;#xyz;"
unicode(35) "&; &amp;amp &amp;#a; &9; &amp;#xyz;"
unicode(32) "&amp;kffjadfdhsjfhjasdhffasdfas;"
unicode(32) "&amp;kffjadfdhsjfhjasdhffasdfas;"
unicode(16) "&amp;#8787978789"