args_make_commands_now needs to take an extra reference to the returned

command list since it will be freed already.
This commit is contained in:
nicm 2021-08-23 17:05:43 +00:00
parent 210e71edf3
commit 841ce74b43

View File

@ -127,7 +127,7 @@ args_parse(const struct args_parse *parse, struct args_value *values,
u_int count) u_int count)
{ {
struct args *args; struct args *args;
u_int i; u_int i;
struct args_value *value, *new; struct args_value *value, *new;
u_char flag, argument; u_char flag, argument;
const char *found, *string, *s; 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); state = args_make_commands_prepare(self, item, idx, NULL, 0, 0);
cmdlist = args_make_commands(state, 0, NULL, &error); cmdlist = args_make_commands(state, 0, NULL, &error);
args_make_commands_free(state);
if (cmdlist == NULL) { if (cmdlist == NULL) {
cmdq_error(item, "%s", error); cmdq_error(item, "%s", error);
free(error); free(error);
} }
else
cmdlist->references++;
args_make_commands_free(state);
return (cmdlist); return (cmdlist);
} }