diff options
author | 2009-06-02 22:38:45 +0000 | |
---|---|---|
committer | 2009-06-02 22:38:45 +0000 | |
commit | 22fa5bd9c1498e4ac6853f5decbe9a92694c607c (patch) | |
tree | 8a3cf3cf2bc2cb6c36a800e2a46790b64b18f5a5 | |
parent | snprintf returns int, not size_t. (diff) | |
download | wireguard-openbsd-22fa5bd9c1498e4ac6853f5decbe9a92694c607c.tar.xz wireguard-openbsd-22fa5bd9c1498e4ac6853f5decbe9a92694c607c.zip |
Protect errno.
OK millert
-rw-r--r-- | libexec/spamd-setup/spamd-setup.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libexec/spamd-setup/spamd-setup.c b/libexec/spamd-setup/spamd-setup.c index d58065807fb..217e299ad54 100644 --- a/libexec/spamd-setup/spamd-setup.c +++ b/libexec/spamd-setup/spamd-setup.c @@ -1,4 +1,4 @@ -/* $OpenBSD: spamd-setup.c,v 1.35 2008/10/03 18:58:52 jmc Exp $ */ +/* $OpenBSD: spamd-setup.c,v 1.36 2009/06/02 22:38:45 ray Exp $ */ /* * Copyright (c) 2003 Bob Beck. All rights reserved. @@ -463,10 +463,10 @@ add_blacklist(struct bl *bl, size_t *blc, size_t *bls, gzFile gzf, int white) if (bu == bs) { tmp = realloc(buf, bs + (1024 * 1024) + 1); if (tmp == NULL) { + serrno = errno; free(buf); buf = NULL; bs = 0; - serrno = errno; goto bldone; } bs += 1024 * 1024; @@ -668,7 +668,7 @@ getlist(char ** db_array, char *name, struct blacklist *blist, struct blacklist *blistnew) { char *buf, *method, *file, *message; - int fd, black = 0; + int fd, black = 0, serror; size_t blc, bls; struct bl *bl = NULL; gzFile gzf; @@ -727,8 +727,10 @@ getlist(char ** db_array, char *name, struct blacklist *blist, } free(buf); bl = add_blacklist(bl, &blc, &bls, gzf, !black); + serror = errno; gzclose(gzf); if (bl == NULL) { + errno = serror; warn("Could not add %slist %s", black ? "black" : "white", name); return (0); |