diff options
author | phantom <phantom@FreeBSD.org> | 2000-09-05 12:23:08 +0000 |
---|---|---|
committer | phantom <phantom@FreeBSD.org> | 2000-09-05 12:23:08 +0000 |
commit | 5b566d9d01d072d456740cae54fe4e1b24a795e2 (patch) | |
tree | c8f8399af1772e40fff7ccbcecb9b832505fdd59 /lib/libc/nls/msgcat.c | |
parent | 6ff92c14b7a65f64dea4e0d4e8d19b2dcf3f57b3 (diff) | |
download | FreeBSD-src-5b566d9d01d072d456740cae54fe4e1b24a795e2.zip FreeBSD-src-5b566d9d01d072d456740cae54fe4e1b24a795e2.tar.gz |
Oops! don't set errno to ENOMEM explicitly if malloc() failed.
Found by: ache
Diffstat (limited to 'lib/libc/nls/msgcat.c')
-rw-r--r-- | lib/libc/nls/msgcat.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/libc/nls/msgcat.c b/lib/libc/nls/msgcat.c index c5ea4a3..bf24d82 100644 --- a/lib/libc/nls/msgcat.c +++ b/lib/libc/nls/msgcat.c @@ -259,13 +259,17 @@ catclose( catd) /* Note that only malloc failures are allowed to return an error */ static char* _errowner = "Message Catalog System";; -#define PROBLEM(err, msg) { \ - fprintf(stderr, msg, _errowner); \ - free(cat); \ - NLRETERR(err); \ +#define CORRUPT() { \ + fprintf(stderr, "%s: currupt file.", _errowner); \ + free(cat); \ + NLRETERR(EINVAL); \ + } + +#define NOSPACE() { \ + fprintf(stderr, "%s: no more memory.", _errowner); \ + free(cat); \ + return(NLERR); \ } -#define CORRUPT() PROBLEM(EINVAL, "%s: corrupt file.\n") -#define NOSPACE() PROBLEM(ENOMEM, "%s: no more memory.\n") static void __nls_free_resources(cat, i) |