summaryrefslogtreecommitdiffstats
path: root/lib/libiconv_modules/VIQR
diff options
context:
space:
mode:
authortijl <tijl@FreeBSD.org>2014-03-04 11:43:01 +0000
committertijl <tijl@FreeBSD.org>2014-03-04 11:43:01 +0000
commit64a908c93597fc7a32a06f4c07bfd9c9006c6062 (patch)
tree5045c4e0aaa9e69b40b3b439246baa178fa13df7 /lib/libiconv_modules/VIQR
parent4dd6e22c185e4b2e10499d050b5f3a25354a0f02 (diff)
downloadFreeBSD-src-64a908c93597fc7a32a06f4c07bfd9c9006c6062.zip
FreeBSD-src-64a908c93597fc7a32a06f4c07bfd9c9006c6062.tar.gz
MFC r262441-262442,262447,262461-262464,262655:
- Consistently pass around context information using a simple pointer. This fixes some dereferencing bugs in Chinese character set conversions. - Fix Simplified Chinese character set conversions by switching around the fields of an internal struct so it corresponds with the way variables of this type are initialised. - Fix an array index out of bounds bug in iconv VIQR (Vietnamese) module. - Silence gcc warning about unsigned comparison with 0. Also record r258316 and r258587 as merged so they no longer show up as eligible. PR: 185964 Submitted by: Manuel Mausz <manuel-freebsd@mausz.at>
Diffstat (limited to 'lib/libiconv_modules/VIQR')
-rw-r--r--lib/libiconv_modules/VIQR/citrus_viqr.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/libiconv_modules/VIQR/citrus_viqr.c b/lib/libiconv_modules/VIQR/citrus_viqr.c
index b8a881d..bcf2007 100644
--- a/lib/libiconv_modules/VIQR/citrus_viqr.c
+++ b/lib/libiconv_modules/VIQR/citrus_viqr.c
@@ -433,7 +433,6 @@ static int
_citrus_VIQR_encoding_module_init(_VIQREncodingInfo * __restrict ei,
const void * __restrict var __unused, size_t lenvar __unused)
{
- const mnemonic_def_t *p;
const char *s;
size_t i, n;
int errnum;
@@ -457,7 +456,10 @@ _citrus_VIQR_encoding_module_init(_VIQREncodingInfo * __restrict ei,
return (errnum);
}
}
- for (i = 0;; ++i) {
+ /* a + 1 < b + 1 here to silence gcc warning about unsigned < 0. */
+ for (i = 0; i + 1 < mnemonic_ext_size + 1; ++i) {
+ const mnemonic_def_t *p;
+
p = &mnemonic_ext[i];
n = strlen(p->name);
if (ei->mb_cur_max < n)
OpenPOWER on IntegriCloud