summaryrefslogtreecommitdiffstats
path: root/lib/libiconv_modules
diff options
context:
space:
mode:
authortijl <tijl@FreeBSD.org>2014-04-15 09:49:44 +0000
committertijl <tijl@FreeBSD.org>2014-04-15 09:49:44 +0000
commit1cbbe6f2d4f3072dbd2c8607cd56bea514637d82 (patch)
treea9679901144507309a5b71a4e0ae37b76368fb52 /lib/libiconv_modules
parente8ab551e5fb0c3b4da36ce4cd1879d73dd2cdf26 (diff)
downloadFreeBSD-src-1cbbe6f2d4f3072dbd2c8607cd56bea514637d82.zip
FreeBSD-src-1cbbe6f2d4f3072dbd2c8607cd56bea514637d82.tar.gz
MFC r263986:
- In the libiconv module for ISO 2022 restore the original order of the fields of a private struct such that variables of this type are initialised correctly. Fixes conversion from ISO 2022. Also do this in the BIG5 module to prevent similar errors in the future. - In the libiconv module for EUC-TW replace 2^cs with 1<<cs. Fixes conversion from EUC-TW. - Synchronise iconv code with NetBSD. In most cases this only updates the RCS id because the changes are already there or are NetBSD specific. + libc/iconv/citrus_csmapper.c: Add a comment. + libc/iconv/citrus_db_factory.c: Remove put16(). + libc/iconv/citrus_iconv.c: Return EINVAL on error. + libc/iconv/citrus_mapper.c: Return EINVAL on error. + libc/iconv/citrus_memstream.c: Fix type of a variable. + libc/iconv/citrus_prop.h: Sync definition of _CITRUS_PROP_HINT_END. + libc/iconv/citrus_stdenc.c: Return EINVAL on error. + libiconv_modules/mapper_std/citrus_mapper_std.c: Plug memory leak. Obtained from: NetBSD
Diffstat (limited to 'lib/libiconv_modules')
-rw-r--r--lib/libiconv_modules/BIG5/citrus_big5.c6
-rw-r--r--lib/libiconv_modules/DECHanyu/citrus_dechanyu.c2
-rw-r--r--lib/libiconv_modules/EUCTW/citrus_euctw.c2
-rw-r--r--lib/libiconv_modules/ISO2022/citrus_iso2022.c6
-rw-r--r--lib/libiconv_modules/UES/citrus_ues.c2
-rw-r--r--lib/libiconv_modules/VIQR/citrus_viqr.c2
-rw-r--r--lib/libiconv_modules/iconv_none/citrus_iconv_none.c2
-rw-r--r--lib/libiconv_modules/iconv_std/citrus_iconv_std.c2
-rw-r--r--lib/libiconv_modules/mapper_std/citrus_mapper_std.c7
9 files changed, 17 insertions, 14 deletions
diff --git a/lib/libiconv_modules/BIG5/citrus_big5.c b/lib/libiconv_modules/BIG5/citrus_big5.c
index d0e7047..a8376eb 100644
--- a/lib/libiconv_modules/BIG5/citrus_big5.c
+++ b/lib/libiconv_modules/BIG5/citrus_big5.c
@@ -1,5 +1,5 @@
/* $FreeBSD$ */
-/* $NetBSD: citrus_big5.c,v 1.12 2008/06/14 16:01:07 tnozaki Exp $ */
+/* $NetBSD: citrus_big5.c,v 1.13 2011/05/23 14:53:46 joerg Exp $ */
/*-
* Copyright (c)2002, 2006 Citrus Project,
@@ -92,8 +92,8 @@ typedef struct {
typedef struct _BIG5Exclude {
TAILQ_ENTRY(_BIG5Exclude) entry;
- wint_t end;
wint_t start;
+ wint_t end;
} _BIG5Exclude;
typedef TAILQ_HEAD(_BIG5ExcludeList, _BIG5Exclude) _BIG5ExcludeList;
@@ -358,7 +358,7 @@ _citrus_BIG5_wcrtomb_priv(_BIG5EncodingInfo * __restrict ei,
size_t n, wchar_t wc, _BIG5State * __restrict psenc __unused,
size_t * __restrict nresult)
{
- unsigned char l;
+ size_t l;
int ret;
/* check invalid sequence */
diff --git a/lib/libiconv_modules/DECHanyu/citrus_dechanyu.c b/lib/libiconv_modules/DECHanyu/citrus_dechanyu.c
index 862956f..fc32018 100644
--- a/lib/libiconv_modules/DECHanyu/citrus_dechanyu.c
+++ b/lib/libiconv_modules/DECHanyu/citrus_dechanyu.c
@@ -1,5 +1,5 @@
/* $FreeBSD$ */
-/* $NetBSD: citrus_dechanyu.c,v 1.3 2008/06/14 16:01:07 tnozaki Exp $ */
+/* $NetBSD: citrus_dechanyu.c,v 1.4 2011/11/19 18:20:13 tnozaki Exp $ */
/*-
* Copyright (c)2007 Citrus Project,
diff --git a/lib/libiconv_modules/EUCTW/citrus_euctw.c b/lib/libiconv_modules/EUCTW/citrus_euctw.c
index 36b43c7..c35423e 100644
--- a/lib/libiconv_modules/EUCTW/citrus_euctw.c
+++ b/lib/libiconv_modules/EUCTW/citrus_euctw.c
@@ -119,7 +119,7 @@ _citrus_EUCTW_count(int cs)
case 1:
/*FALLTHROUGH*/
case 2:
- return (2^cs);
+ return (1 << cs);
case 3:
abort();
/*NOTREACHED*/
diff --git a/lib/libiconv_modules/ISO2022/citrus_iso2022.c b/lib/libiconv_modules/ISO2022/citrus_iso2022.c
index 357f3b9..3402ba8 100644
--- a/lib/libiconv_modules/ISO2022/citrus_iso2022.c
+++ b/lib/libiconv_modules/ISO2022/citrus_iso2022.c
@@ -1,5 +1,5 @@
/* $FreeBSD$ */
-/* $NetBSD: citrus_iso2022.c,v 1.19 2008/06/14 16:01:07 tnozaki Exp $ */
+/* $NetBSD: citrus_iso2022.c,v 1.20 2010/12/07 22:01:45 joerg Exp $ */
/*-
* Copyright (c)1999, 2002 Citrus Project,
@@ -78,9 +78,9 @@
#define CS96MULTI (3U)
typedef struct {
- unsigned char interm;
- unsigned char final;
unsigned char type;
+ unsigned char final;
+ unsigned char interm;
unsigned char vers;
} _ISO2022Charset;
diff --git a/lib/libiconv_modules/UES/citrus_ues.c b/lib/libiconv_modules/UES/citrus_ues.c
index d62b2ad..45f5416 100644
--- a/lib/libiconv_modules/UES/citrus_ues.c
+++ b/lib/libiconv_modules/UES/citrus_ues.c
@@ -1,5 +1,5 @@
/* $FreeBSD$ */
-/* $NetBSD: citrus_ues.c,v 1.1 2006/11/13 15:16:31 tnozaki Exp $ */
+/* $NetBSD: citrus_ues.c,v 1.3 2012/02/12 13:51:29 wiz Exp $ */
/*-
* Copyright (c)2006 Citrus Project,
diff --git a/lib/libiconv_modules/VIQR/citrus_viqr.c b/lib/libiconv_modules/VIQR/citrus_viqr.c
index bcf2007..dddb0b0 100644
--- a/lib/libiconv_modules/VIQR/citrus_viqr.c
+++ b/lib/libiconv_modules/VIQR/citrus_viqr.c
@@ -1,5 +1,5 @@
/* $FreeBSD$ */
-/* $NetBSD: citrus_viqr.c,v 1.4 2008/06/14 16:01:08 tnozaki Exp $ */
+/* $NetBSD: citrus_viqr.c,v 1.5 2011/11/19 18:20:13 tnozaki Exp $ */
/*-
* Copyright (c)2006 Citrus Project,
diff --git a/lib/libiconv_modules/iconv_none/citrus_iconv_none.c b/lib/libiconv_modules/iconv_none/citrus_iconv_none.c
index 76bb06f..967ee13 100644
--- a/lib/libiconv_modules/iconv_none/citrus_iconv_none.c
+++ b/lib/libiconv_modules/iconv_none/citrus_iconv_none.c
@@ -1,5 +1,5 @@
/* $FreeBSD$ */
-/* $NetBSD: citrus_iconv_none.c,v 1.2 2003/07/01 09:42:16 tshiozak Exp $ */
+/* $NetBSD: citrus_iconv_none.c,v 1.3 2011/05/23 14:45:44 joerg Exp $ */
/*-
* Copyright (c)2003 Citrus Project,
diff --git a/lib/libiconv_modules/iconv_std/citrus_iconv_std.c b/lib/libiconv_modules/iconv_std/citrus_iconv_std.c
index b30f099..04b7c3a 100644
--- a/lib/libiconv_modules/iconv_std/citrus_iconv_std.c
+++ b/lib/libiconv_modules/iconv_std/citrus_iconv_std.c
@@ -1,5 +1,5 @@
/* $FreeBSD$ */
-/* $NetBSD: citrus_iconv_std.c,v 1.15 2006/11/13 19:08:19 tnozaki Exp $ */
+/* $NetBSD: citrus_iconv_std.c,v 1.16 2012/02/12 13:51:29 wiz Exp $ */
/*-
* Copyright (c)2003 Citrus Project,
diff --git a/lib/libiconv_modules/mapper_std/citrus_mapper_std.c b/lib/libiconv_modules/mapper_std/citrus_mapper_std.c
index bc75643..712e9b2 100644
--- a/lib/libiconv_modules/mapper_std/citrus_mapper_std.c
+++ b/lib/libiconv_modules/mapper_std/citrus_mapper_std.c
@@ -1,5 +1,5 @@
/* $FreeBSD$ */
-/* $NetBSD: citrus_mapper_std.c,v 1.8 2006/09/11 13:06:33 tnozaki Exp $ */
+/* $NetBSD: citrus_mapper_std.c,v 1.10 2011/11/19 18:48:39 tnozaki Exp $ */
/*-
* Copyright (c)2003, 2006 Citrus Project,
@@ -174,8 +174,11 @@ rowcol_parse_variable_compat(struct _citrus_mapper_std_rowcol *rc,
n = be32toh(rcx->rcx_src_row_end);
if (m + n > 0) {
ret = set_linear_zone(lz, m, n);
- if (ret != 0)
+ if (ret != 0) {
+ free(rc->rc_src_rowcol);
+ rc->rc_src_rowcol = NULL;
return (ret);
+ }
++rc->rc_src_rowcol_len, ++lz;
}
m = be32toh(rcx->rcx_src_col_begin);
OpenPOWER on IntegriCloud