mirror of
https://github.com/php/php-src.git
synced 2024-12-15 21:05:51 +08:00
- Fixed bug #53021 (In html_entity_decode, failure to convert numeric entities with ENT_NOQUOTES and ISO-8859-1).
This commit is contained in:
parent
93d7715e7b
commit
485a094334
2
NEWS
2
NEWS
@ -25,6 +25,8 @@
|
||||
- Fixed possible crash in mssql_fetch_batch(). (Kalle)
|
||||
- Fixed inconsistent backlog default value (-1) in FPM on many systems. (fat)
|
||||
|
||||
- Fixed bug #53021 (In html_entity_decode, failure to convert numeric entities
|
||||
with ENT_NOQUOTES and ISO-8859-1) (Gustavo).
|
||||
- Fixed bug #52981 (Unicode casing table was out-of-date. Updated with
|
||||
UnicodeData-6.0.0d7.txt and included the source of the generator program with
|
||||
the distribution) (Gustavo).
|
||||
|
@ -1020,7 +1020,12 @@ PHPAPI char *php_unescape_html_entities(unsigned char *old, int oldlen, int *new
|
||||
code = strtol(p + 2, &next, 10);
|
||||
}
|
||||
|
||||
if (next != NULL && *next == ';') {
|
||||
if (code == 39 && !(quote_style & ENT_HTML_QUOTE_SINGLE) ||
|
||||
code == 24 && !(quote_style & ENT_HTML_QUOTE_DOUBLE)) {
|
||||
invalid_code = 1;
|
||||
}
|
||||
|
||||
if (next != NULL && *next == ';' && !invalid_code) {
|
||||
switch (charset) {
|
||||
case cs_utf_8:
|
||||
q += php_utf32_utf8(q, code);
|
||||
@ -1032,11 +1037,7 @@ PHPAPI char *php_unescape_html_entities(unsigned char *old, int oldlen, int *new
|
||||
if ((code >= 0x80 && code < 0xa0) || code > 0xff) {
|
||||
invalid_code = 1;
|
||||
} else {
|
||||
if (code == 39 || !quote_style) {
|
||||
invalid_code = 1;
|
||||
} else {
|
||||
*(q++) = code;
|
||||
}
|
||||
*(q++) = code;
|
||||
}
|
||||
break;
|
||||
|
||||
|
10
ext/standard/tests/strings/bug53021.phpt
Normal file
10
ext/standard/tests/strings/bug53021.phpt
Normal file
@ -0,0 +1,10 @@
|
||||
--TEST--
|
||||
Bug #53021 (Failure to convert numeric entities with ENT_NOQUOTES and ISO-8859-1)
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump(unpack("H*",html_entity_decode("é", ENT_QUOTES, "ISO-8859-1")));
|
||||
--EXPECT--
|
||||
array(1) {
|
||||
[1]=>
|
||||
string(2) "e9"
|
||||
}
|
Loading…
Reference in New Issue
Block a user