summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/mailwrapper/mailwrapper.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/usr.sbin/mailwrapper/mailwrapper.c b/usr.sbin/mailwrapper/mailwrapper.c
index 2b6002d314b..7e90ad435c1 100644
--- a/usr.sbin/mailwrapper/mailwrapper.c
+++ b/usr.sbin/mailwrapper/mailwrapper.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mailwrapper.c,v 1.1 1999/08/02 19:50:08 jakob Exp $ */
+/* $OpenBSD: mailwrapper.c,v 1.2 1999/08/02 20:25:47 jakob Exp $ */
/* $NetBSD: mailwrapper.c,v 1.2 1999/02/20 22:10:07 thorpej Exp $ */
/*
@@ -70,11 +70,20 @@ addarg(al, arg, copy)
const char *arg;
int copy;
{
+ char **argv2;
+
if (al->argc == al->maxc) {
al->maxc <<= 1;
- if ((al->argv = realloc(al->argv,
- al->maxc * sizeof(char *))) == NULL)
- err(1, "mailwrapper");
+
+ if ((argv2 = realloc(al->argv,
+ al->maxc * sizeof(char *))) == NULL) {
+ if (al->argv)
+ free(al->argv);
+ al->argv = NULL;
+ err(1, "mailwrapper");
+ } else {
+ al->argv = argv2;
+ }
}
if (copy) {
if ((al->argv[al->argc++] = strdup(arg)) == NULL)