summaryrefslogtreecommitdiff
path: root/lib/libc/locale/collate.c
diff options
context:
space:
mode:
authorAndrey A. Chernov <ache@FreeBSD.org>2002-08-12 17:14:04 +0000
committerAndrey A. Chernov <ache@FreeBSD.org>2002-08-12 17:14:04 +0000
commite34fe8a408efb852df39ddb775cff71d86b3db3a (patch)
treeb45a6af13a8180ebb4faafdd8b0fe6aed69a6336 /lib/libc/locale/collate.c
parent5c5384fe80a406fce7ed6950b051fd4ce155b9c4 (diff)
Notes
Diffstat (limited to 'lib/libc/locale/collate.c')
-rw-r--r--lib/libc/locale/collate.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/libc/locale/collate.c b/lib/libc/locale/collate.c
index c7e6c12d8d4d..44c3eb720298 100644
--- a/lib/libc/locale/collate.c
+++ b/lib/libc/locale/collate.c
@@ -92,23 +92,26 @@ __collate_load_tables(const char *encoding)
if ((TMP_substitute_table =
malloc(sizeof(__collate_substitute_table))) == NULL) {
+ saverr = errno;
(void)fclose(fp);
- errno = ENOMEM;
+ errno = saverr;
return (_LDP_ERROR);
}
if ((TMP_char_pri_table =
malloc(sizeof(__collate_char_pri_table))) == NULL) {
+ saverr = errno;
free(TMP_substitute_table);
(void)fclose(fp);
- errno = ENOMEM;
+ errno = saverr;
return (_LDP_ERROR);
}
if ((TMP_chain_pri_table =
malloc(sizeof(__collate_chain_pri_table))) == NULL) {
+ saverr = errno;
free(TMP_substitute_table);
free(TMP_char_pri_table);
(void)fclose(fp);
- errno = ENOMEM;
+ errno = saverr;
return (_LDP_ERROR);
}