summaryrefslogtreecommitdiffstats
path: root/lib/libc/locale/setrunelocale.c
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>2002-08-09 08:22:29 +0000
committerache <ache@FreeBSD.org>2002-08-09 08:22:29 +0000
commit9d73d0dd122e2ce7df338d16beff65b7bbbc42c5 (patch)
treeec50b36d8d16a98023a55c6c494ff75a89b994db /lib/libc/locale/setrunelocale.c
parentb11e88aa0eb39e0a14d792aeaf714fbbf091e7eb (diff)
downloadFreeBSD-src-9d73d0dd122e2ce7df338d16beff65b7bbbc42c5.zip
FreeBSD-src-9d73d0dd122e2ce7df338d16beff65b7bbbc42c5.tar.gz
Add safeguards to never use errno == 0 as setrunelocale() error return code
Diffstat (limited to 'lib/libc/locale/setrunelocale.c')
-rw-r--r--lib/libc/locale/setrunelocale.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/libc/locale/setrunelocale.c b/lib/libc/locale/setrunelocale.c
index f1a01fc..042a06c 100644
--- a/lib/libc/locale/setrunelocale.c
+++ b/lib/libc/locale/setrunelocale.c
@@ -106,7 +106,7 @@ setrunelocale(char *encoding)
return (ENAMETOOLONG);
_PathLocale = strdup(p);
if (_PathLocale == NULL)
- return (ENOMEM);
+ return (errno == 0 ? ENOMEM : errno);
} else
_PathLocale = _PATH_LOCALE;
}
@@ -117,10 +117,10 @@ setrunelocale(char *encoding)
(void) strcat(name, "/LC_CTYPE");
if ((fp = fopen(name, "r")) == NULL)
- return (errno);
+ return (errno == 0 ? ENOENT : errno);
if ((rl = _Read_RuneMagi(fp)) == NULL) {
- saverr = errno;
+ saverr = (errno == 0 ? EFTYPE : errno);
(void)fclose(fp);
return (saverr);
}
OpenPOWER on IntegriCloud