From 841ce74b4303133e0aaf379ba25cdfa7de7971b5 Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 23 Aug 2021 17:05:43 +0000 Subject: args_make_commands_now needs to take an extra reference to the returned command list since it will be freed already. --- arguments.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'arguments.c') diff --git a/arguments.c b/arguments.c index 1f786529..bddb6365 100644 --- a/arguments.c +++ b/arguments.c @@ -127,7 +127,7 @@ args_parse(const struct args_parse *parse, struct args_value *values, u_int count) { struct args *args; - u_int i; + u_int i; struct args_value *value, *new; u_char flag, argument; const char *found, *string, *s; @@ -497,11 +497,13 @@ args_make_commands_now(struct cmd *self, struct cmdq_item *item, u_int idx) state = args_make_commands_prepare(self, item, idx, NULL, 0, 0); cmdlist = args_make_commands(state, 0, NULL, &error); - args_make_commands_free(state); if (cmdlist == NULL) { cmdq_error(item, "%s", error); free(error); } + else + cmdlist->references++; + args_make_commands_free(state); return (cmdlist); } -- cgit v1.2.3