mirror of
https://github.com/php/php-src.git
synced 2024-09-21 09:57:23 +00:00
Fix incorrect check in cs_8559_5 in map_from_unicode()
The condition `code == 0x0450 || code == 0x045D` is always false because of an incorrect range check on code. According to the BMP coverage in the encoding spec for ISO-8859-5 (https://encoding.spec.whatwg.org/iso-8859-5-bmp.html) the range of valid characters is 0x0401 - 0x045F (except for 0x040D, 0x0450, 0x045D). The current check has an upper bound of 0x044F instead of 0x045F. Fix this by changing the upper bound. Closes GH-10399 Signed-off-by: George Peter Banyard <girgias@php.net>
This commit is contained in:
parent
b7a158a19b
commit
a8c8fb2564
1
NEWS
1
NEWS
@ -15,6 +15,7 @@ PHP NEWS
|
|||||||
- Standard:
|
- Standard:
|
||||||
. Fixed bug GH-10292 (Made the default value of the first param of srand() and
|
. Fixed bug GH-10292 (Made the default value of the first param of srand() and
|
||||||
mt_srand() unknown). (kocsismate)
|
mt_srand() unknown). (kocsismate)
|
||||||
|
. Fix incorrect check in cs_8559_5 in map_from_unicode(). (nielsdos)
|
||||||
|
|
||||||
02 Feb 2023, PHP 8.1.15
|
02 Feb 2023, PHP 8.1.15
|
||||||
|
|
||||||
|
@ -477,7 +477,7 @@ static inline int map_from_unicode(unsigned code, enum entity_charset charset, u
|
|||||||
*res = 0xF0; /* numero sign */
|
*res = 0xF0; /* numero sign */
|
||||||
} else if (code == 0xA7) {
|
} else if (code == 0xA7) {
|
||||||
*res = 0xFD; /* section sign */
|
*res = 0xFD; /* section sign */
|
||||||
} else if (code >= 0x0401 && code <= 0x044F) {
|
} else if (code >= 0x0401 && code <= 0x045F) {
|
||||||
if (code == 0x040D || code == 0x0450 || code == 0x045D)
|
if (code == 0x040D || code == 0x0450 || code == 0x045D)
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
*res = code - 0x360;
|
*res = code - 0x360;
|
||||||
|
@ -358,47 +358,47 @@ CYRILLIC SMALL LETTER YA: я => ef
|
|||||||
NUMERO SIGN: № => f0
|
NUMERO SIGN: № => f0
|
||||||
ð => ð
|
ð => ð
|
||||||
|
|
||||||
CYRILLIC SMALL LETTER IO: ё => 2623783435313b
|
CYRILLIC SMALL LETTER IO: ё => f1
|
||||||
ñ => ñ
|
ñ => ñ
|
||||||
|
|
||||||
CYRILLIC SMALL LETTER DJE: ђ => 2623783435323b
|
CYRILLIC SMALL LETTER DJE: ђ => f2
|
||||||
ò => ò
|
ò => ò
|
||||||
|
|
||||||
CYRILLIC SMALL LETTER GJE: ѓ => 2623783435333b
|
CYRILLIC SMALL LETTER GJE: ѓ => f3
|
||||||
ó => ó
|
ó => ó
|
||||||
|
|
||||||
CYRILLIC SMALL LETTER UKRAINIAN IE: є => 2623783435343b
|
CYRILLIC SMALL LETTER UKRAINIAN IE: є => f4
|
||||||
ô => ô
|
ô => ô
|
||||||
|
|
||||||
CYRILLIC SMALL LETTER DZE: ѕ => 2623783435353b
|
CYRILLIC SMALL LETTER DZE: ѕ => f5
|
||||||
õ => õ
|
õ => õ
|
||||||
|
|
||||||
CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I: і => 2623783435363b
|
CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I: і => f6
|
||||||
ö => ö
|
ö => ö
|
||||||
|
|
||||||
CYRILLIC SMALL LETTER YI: ї => 2623783435373b
|
CYRILLIC SMALL LETTER YI: ї => f7
|
||||||
÷ => ÷
|
÷ => ÷
|
||||||
|
|
||||||
CYRILLIC SMALL LETTER JE: ј => 2623783435383b
|
CYRILLIC SMALL LETTER JE: ј => f8
|
||||||
ø => ø
|
ø => ø
|
||||||
|
|
||||||
CYRILLIC SMALL LETTER LJE: љ => 2623783435393b
|
CYRILLIC SMALL LETTER LJE: љ => f9
|
||||||
ù => ù
|
ù => ù
|
||||||
|
|
||||||
CYRILLIC SMALL LETTER NJE: њ => 2623783435413b
|
CYRILLIC SMALL LETTER NJE: њ => fa
|
||||||
ú => ú
|
ú => ú
|
||||||
|
|
||||||
CYRILLIC SMALL LETTER TSHE: ћ => 2623783435423b
|
CYRILLIC SMALL LETTER TSHE: ћ => fb
|
||||||
û => û
|
û => û
|
||||||
|
|
||||||
CYRILLIC SMALL LETTER KJE: ќ => 2623783435433b
|
CYRILLIC SMALL LETTER KJE: ќ => fc
|
||||||
ü => ü
|
ü => ü
|
||||||
|
|
||||||
SECTION SIGN: § => fd
|
SECTION SIGN: § => fd
|
||||||
ý => ý
|
ý => ý
|
||||||
|
|
||||||
CYRILLIC SMALL LETTER SHORT U: ў => 2623783435453b
|
CYRILLIC SMALL LETTER SHORT U: ў => fe
|
||||||
þ => þ
|
þ => þ
|
||||||
|
|
||||||
CYRILLIC SMALL LETTER DZHE: џ => 2623783435463b
|
CYRILLIC SMALL LETTER DZHE: џ => ff
|
||||||
ÿ => ÿ
|
ÿ => ÿ
|
||||||
|
Loading…
Reference in New Issue
Block a user