summaryrefslogtreecommitdiffstats
path: root/arguments.c
diff options
context:
space:
mode:
Diffstat (limited to 'arguments.c')
-rw-r--r--arguments.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arguments.c b/arguments.c
index bf95b453..f96f0471 100644
--- a/arguments.c
+++ b/arguments.c
@@ -164,15 +164,17 @@ args_parse_flag_argument(struct args_value *values, u_int count, char **cause,
argument = &values[*i];
if (argument->type != ARGS_STRING) {
xasprintf(cause, "-%c argument must be a string", flag);
+ args_free_value(new);
+ free(new);
return (-1);
}
}
if (argument == NULL) {
+ args_free_value(new);
+ free(new);
if (optional_argument) {
log_debug("%s: -%c (optional)", __func__, flag);
args_set(args, flag, NULL, ARGS_ENTRY_OPTIONAL_VALUE);
- args_free_value(new);
- free(new);
return (0); /* either - or end */
}
xasprintf(cause, "-%c expects an argument", flag);