summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/iconv/bsd_iconv.c5
-rw-r--r--lib/libc/iconv/citrus_db_factory.c4
-rw-r--r--lib/libc/iconv/citrus_iconv.c3
3 files changed, 5 insertions, 7 deletions
diff --git a/lib/libc/iconv/bsd_iconv.c b/lib/libc/iconv/bsd_iconv.c
index 40a1a4e..f764886 100644
--- a/lib/libc/iconv/bsd_iconv.c
+++ b/lib/libc/iconv/bsd_iconv.c
@@ -83,6 +83,7 @@ __bsd___iconv_open(const char *out, const char *in, struct _citrus_iconv *handle
}
handle->cv_shared->ci_discard_ilseq = strcasestr(out, "//IGNORE");
+ handle->cv_shared->ci_ilseq_invalid = false;
handle->cv_shared->ci_hooks = NULL;
return ((iconv_t)(void *)handle);
@@ -223,7 +224,7 @@ __bsd_iconvlist(int (*do_one) (unsigned int, const char * const *,
return;
}
strlcpy(curkey, list[i], slashpos - list[i] + 1);
- names[j++] = strdup(curkey);
+ names[j++] = curkey;
for (; (i < sz) && (memcmp(curkey, list[i], strlen(curkey)) == 0); i++) {
slashpos = strchr(list[i], '/');
curitem = (char *)malloc(strlen(slashpos) + 1);
@@ -235,7 +236,7 @@ __bsd_iconvlist(int (*do_one) (unsigned int, const char * const *,
if (strcmp(curkey, curitem) == 0) {
continue;
}
- names[j++] = strdup(curitem);
+ names[j++] = curitem;
}
np = (const char * const *)names;
do_one(j, np, data);
diff --git a/lib/libc/iconv/citrus_db_factory.c b/lib/libc/iconv/citrus_db_factory.c
index e9823ab..691fe4e 100644
--- a/lib/libc/iconv/citrus_db_factory.c
+++ b/lib/libc/iconv/citrus_db_factory.c
@@ -270,11 +270,9 @@ _citrus_db_factory_serialize(struct _citrus_db_factory *df, const char *magic,
return (0);
}
/* allocate hash table */
- depp = malloc(sizeof(*depp) * df->df_num_entries);
+ depp = calloc(df->df_num_entries, sizeof(*depp));
if (depp == NULL)
return (-1);
- for (i = 0; i < df->df_num_entries; i++)
- depp[i] = NULL;
/* step1: store the entries which are not conflicting */
STAILQ_FOREACH(de, &df->df_entries, de_entry) {
diff --git a/lib/libc/iconv/citrus_iconv.c b/lib/libc/iconv/citrus_iconv.c
index df2ed73..5c8bf49 100644
--- a/lib/libc/iconv/citrus_iconv.c
+++ b/lib/libc/iconv/citrus_iconv.c
@@ -344,9 +344,8 @@ const char
{
char *buf;
- if ((buf = malloc((size_t)PATH_MAX)) == NULL)
+ if ((buf = calloc((size_t)PATH_MAX, sizeof(*buf))) == NULL)
return (NULL);
- memset((void *)buf, 0, (size_t)PATH_MAX);
_citrus_esdb_alias(name, buf, (size_t)PATH_MAX);
return (buf);
}
OpenPOWER on IntegriCloud