From 3956b1013e857e76c3981403bd47b4e826fef12b Mon Sep 17 00:00:00 2001 From: Alexander Kabaev Date: Sat, 28 Feb 2015 20:30:25 +0000 Subject: [PATCH] Avoid lookup of CODESET aliases using uninitialized path We do not use iconv.alias file, so avoid using the vestiges of the code that do. Differential Revision: https://reviews.freebsd.org/D1729 Reviewed by: emaste MFC after: 2 weeks --- lib/libc/iconv/citrus_iconv.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/libc/iconv/citrus_iconv.c b/lib/libc/iconv/citrus_iconv.c index 5c8bf4923668..59940631f53b 100644 --- a/lib/libc/iconv/citrus_iconv.c +++ b/lib/libc/iconv/citrus_iconv.c @@ -278,7 +278,9 @@ _citrus_iconv_open(struct _citrus_iconv * __restrict * __restrict rcv, struct _citrus_iconv *cv = NULL; struct _citrus_iconv_shared *ci = NULL; char realdst[PATH_MAX], realsrc[PATH_MAX]; +#ifdef _PATH_ICONV char buf[PATH_MAX], path[PATH_MAX]; +#endif int ret; init_cache(); @@ -290,10 +292,16 @@ _citrus_iconv_open(struct _citrus_iconv * __restrict * __restrict rcv, dst = nl_langinfo(CODESET); /* resolve codeset name aliases */ +#ifdef _PATH_ICONV + snprintf(path, sizeof(path), "%s/%s", _PATH_ICONV, _CITRUS_ICONV_ALIAS); strlcpy(realsrc, _lookup_alias(path, src, buf, (size_t)PATH_MAX, _LOOKUP_CASE_IGNORE), (size_t)PATH_MAX); strlcpy(realdst, _lookup_alias(path, dst, buf, (size_t)PATH_MAX, _LOOKUP_CASE_IGNORE), (size_t)PATH_MAX); +#else + strlcpy(realsrc, src, (size_t)PATH_MAX); + strlcpy(realdst, dst, (size_t)PATH_MAX); +#endif /* sanity check */ if (strchr(realsrc, '/') != NULL || strchr(realdst, '/'))