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:
+14
-3
@@ -1197,9 +1197,20 @@ encode_amp:
|
||||
} else {
|
||||
if (*s == '#') { /* numeric entities */
|
||||
s++;
|
||||
while (s < e) {
|
||||
if (!isdigit(*s++)) {
|
||||
goto encode_amp;
|
||||
/* Hex (Z) */
|
||||
if (*s == 'x' || *s == 'X') {
|
||||
s++;
|
||||
while (s < e) {
|
||||
if (!isxdigit(*s++)) {
|
||||
goto encode_amp;
|
||||
}
|
||||
}
|
||||
/* Dec (Z)*/
|
||||
} else {
|
||||
while (s < e) {
|
||||
if (!isdigit(*s++)) {
|
||||
goto encode_amp;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else { /* text entities */
|
||||
|
||||
@@ -6,7 +6,8 @@ $tests = array(
|
||||
"abc",
|
||||
"abc&sfdsa",
|
||||
"test+s & some more D",
|
||||
"&; & &#a; &9;",
|
||||
"test+s & some more D",
|
||||
"&; & &#a; &9; &#xyz;",
|
||||
"&kffjadfdhsjfhjasdhffasdfas;",
|
||||
"�",
|
||||
"&",
|
||||
@@ -26,8 +27,10 @@ unicode(13) "abc&sfdsa"
|
||||
unicode(13) "abc&sfdsa"
|
||||
unicode(33) "test+s & some more D"
|
||||
unicode(33) "test+s & some more D"
|
||||
unicode(24) "&; &amp &#a; &9;"
|
||||
unicode(24) "&; &amp &#a; &9;"
|
||||
unicode(34) "test+s & some more D"
|
||||
unicode(34) "test+s & some more D"
|
||||
unicode(35) "&; &amp &#a; &9; &#xyz;"
|
||||
unicode(35) "&; &amp &#a; &9; &#xyz;"
|
||||
unicode(32) "&kffjadfdhsjfhjasdhffasdfas;"
|
||||
unicode(32) "&kffjadfdhsjfhjasdhffasdfas;"
|
||||
unicode(16) "&#8787978789"
|
||||
|
||||
Reference in New Issue
Block a user