hwpfilter/source/hcode.cxx | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-)
New commits: commit 86a5c40b4ab4cdf20733dbbb1698472c9a0eeded Author: Caolán McNamara <caol...@redhat.com> Date: Sat Feb 24 19:25:01 2018 +0000 forcepoint #7 check ksc5601_2uni_page21 bounds Change-Id: I578e7a63bb50f2088d35174d88f075c00469bad3 Reviewed-on: https://gerrit.libreoffice.org/50285 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/hwpfilter/source/hcode.cxx b/hwpfilter/source/hcode.cxx index 0aedfb11d1db..7dd7408ffe56 100644 --- a/hwpfilter/source/hcode.cxx +++ b/hwpfilter/source/hcode.cxx @@ -1139,14 +1139,11 @@ int kssm_hangul_to_ucs2(hchar ch, hchar *dest) hchar ksc5601_sym_to_ucs2 (hchar input) { unsigned char ch = sal::static_int_cast<unsigned char>(input >> 8); - unsigned char ch2; - int idx; - - ch2 = sal::static_int_cast<unsigned char>(input & 0xff); - idx = (ch - 0xA1) * 94 + (ch2 - 0xA1); - if (idx <= 1114 && idx >= 0){ - hchar value = ksc5601_2uni_page21[idx]; - return value ? value : 0x25a1; + unsigned char ch2 = sal::static_int_cast<unsigned char>(input & 0xff); + int idx = (ch - 0xA1) * 94 + (ch2 - 0xA1); + if (idx >= 0 && idx < static_cast<int>(SAL_N_ELEMENTS(ksc5601_2uni_page21))) { + hchar value = ksc5601_2uni_page21[idx]; + return value ? value : 0x25a1; } return 0x25a1; } @@ -1154,15 +1151,12 @@ hchar ksc5601_sym_to_ucs2 (hchar input) hchar ksc5601_han_to_ucs2 (hchar input) { unsigned char ch = sal::static_int_cast<unsigned char>(input >> 8); - unsigned char ch2; - int idx; - - ch2 = sal::static_int_cast<unsigned char>(input & 0xff); - idx = (ch - 0xA1) * 94 + (ch2 - 0xA1); - if (idx >= 3854){ - // Hanja : row 42 - row 93 : 3854 = 94 * (42-1) - hchar value = ksc5601_2uni_page21[idx - 3854]; - return value ? value : '?'; + unsigned char ch2 = sal::static_int_cast<unsigned char>(input & 0xff); + int idx = (ch - 0xA1) * 94 + (ch2 - 0xA1); + if (idx >= 3854 && idx < static_cast<int>(3854 + SAL_N_ELEMENTS(ksc5601_2uni_page21))) { + // Hanja : row 42 - row 93 : 3854 = 94 * (42-1) + hchar value = ksc5601_2uni_page21[idx - 3854]; + return value ? value : '?'; } return '?'; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits