Kaydet (Commit) 0609e631 authored tarafından Caolán McNamara's avatar Caolán McNamara Kaydeden (comit) Andras Timar

forcepoint #7 check ksc5601_2uni_page21 bounds

Change-Id: I578e7a63bb50f2088d35174d88f075c00469bad3
Reviewed-on: https://gerrit.libreoffice.org/50287Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMiklos Vajna <vmiklos@collabora.co.uk>
(cherry picked from commit bdf30af5)
üst 9224ddf3
...@@ -1139,14 +1139,11 @@ int kssm_hangul_to_ucs2(hchar ch, hchar *dest) ...@@ -1139,14 +1139,11 @@ int kssm_hangul_to_ucs2(hchar ch, hchar *dest)
hchar ksc5601_sym_to_ucs2 (hchar input) hchar ksc5601_sym_to_ucs2 (hchar input)
{ {
unsigned char ch = sal::static_int_cast<unsigned char>(input >> 8); unsigned char ch = sal::static_int_cast<unsigned char>(input >> 8);
unsigned char ch2; unsigned char ch2 = sal::static_int_cast<unsigned char>(input & 0xff);
int idx; int idx = (ch - 0xA1) * 94 + (ch2 - 0xA1);
if (idx >= 0 && idx < static_cast<int>(SAL_N_ELEMENTS(ksc5601_2uni_page21))) {
ch2 = sal::static_int_cast<unsigned char>(input & 0xff); hchar value = ksc5601_2uni_page21[idx];
idx = (ch - 0xA1) * 94 + (ch2 - 0xA1); return value ? value : 0x25a1;
if (idx <= 1114 && idx >= 0){
hchar value = ksc5601_2uni_page21[idx];
return value ? value : 0x25a1;
} }
return 0x25a1; return 0x25a1;
} }
...@@ -1154,15 +1151,12 @@ hchar ksc5601_sym_to_ucs2 (hchar input) ...@@ -1154,15 +1151,12 @@ hchar ksc5601_sym_to_ucs2 (hchar input)
hchar ksc5601_han_to_ucs2 (hchar input) hchar ksc5601_han_to_ucs2 (hchar input)
{ {
unsigned char ch = sal::static_int_cast<unsigned char>(input >> 8); unsigned char ch = sal::static_int_cast<unsigned char>(input >> 8);
unsigned char ch2; unsigned char ch2 = sal::static_int_cast<unsigned char>(input & 0xff);
int idx; int idx = (ch - 0xA1) * 94 + (ch2 - 0xA1);
if (idx >= 3854 && idx < static_cast<int>(3854 + SAL_N_ELEMENTS(ksc5601_2uni_page21))) {
ch2 = sal::static_int_cast<unsigned char>(input & 0xff); // Hanja : row 42 - row 93 : 3854 = 94 * (42-1)
idx = (ch - 0xA1) * 94 + (ch2 - 0xA1); hchar value = ksc5601_2uni_page21[idx - 3854];
if (idx >= 3854){ return value ? value : '?';
// Hanja : row 42 - row 93 : 3854 = 94 * (42-1)
hchar value = ksc5601_2uni_page21[idx - 3854];
return value ? value : '?';
} }
return '?'; return '?';
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment