X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fstriconv.c;h=ea4fa2979edce1a03b042e608fa64c44eca136ae;hb=a66ebad971a6ac359424c435ed9fa24b0e7f94e0;hp=b2490a750d13bcebc3c5e63fa07605b67371ef3f;hpb=61d6ec62790ce03addf075dff18c0aacca1915f0;p=gnulib.git diff --git a/lib/striconv.c b/lib/striconv.c index b2490a750..ea4fa2979 100644 --- a/lib/striconv.c +++ b/lib/striconv.c @@ -31,7 +31,6 @@ # include #endif -#include "strdup.h" #include "c-strcase.h" #ifndef SIZE_MAX @@ -397,8 +396,14 @@ str_cd_iconv (const char *src, iconv_t cd) char * str_iconv (const char *src, const char *from_codeset, const char *to_codeset) { - if (c_strcasecmp (from_codeset, to_codeset) == 0) - return strdup (src); + if (*src == '\0' || c_strcasecmp (from_codeset, to_codeset) == 0) + { + char *result = strdup (src); + + if (result == NULL) + errno = ENOMEM; + return result; + } else { #if HAVE_ICONV