diff options
| author | Andrey A. Chernov <ache@FreeBSD.org> | 2002-08-12 17:14:04 +0000 |
|---|---|---|
| committer | Andrey A. Chernov <ache@FreeBSD.org> | 2002-08-12 17:14:04 +0000 |
| commit | e34fe8a408efb852df39ddb775cff71d86b3db3a (patch) | |
| tree | b45a6af13a8180ebb4faafdd8b0fe6aed69a6336 /lib/libc/locale/collate.c | |
| parent | 5c5384fe80a406fce7ed6950b051fd4ce155b9c4 (diff) | |
Notes
Diffstat (limited to 'lib/libc/locale/collate.c')
| -rw-r--r-- | lib/libc/locale/collate.c | 9 |
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); } |
