]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/command_match.c
zebra, lib: fix the ZEBRA_INTERFACE_VRF_UPDATE zapi message
[mirror_frr.git] / lib / command_match.c
index c165305d78315a7c9e4f440f574e825af7a0ad1d..8b34d1e3eb907e6848e75ea6af5edbe23d16c61a 100644 (file)
@@ -195,7 +195,7 @@ static enum matcher_rv command_match_r(struct graph_node *start, vector vline,
        enum matcher_rv status = MATCHER_NO_MATCH;
 
        // get the minimum match level that can count as a full match
-       struct cmd_token *token = start->data;
+       struct cmd_token *copy, *token = start->data;
        enum match_type minmatch = min_match_level(token->type);
 
        /* check history/stack of tokens
@@ -326,15 +326,15 @@ static enum matcher_rv command_match_r(struct graph_node *start, vector vline,
        }
        if (*currbest) {
                // copy token, set arg and prepend to currbest
-               struct cmd_token *token = start->data;
-               struct cmd_token *copy = cmd_token_dup(token);
+               token = start->data;
+               copy = cmd_token_dup(token);
                copy->arg = XSTRDUP(MTYPE_CMD_ARG, input_token);
                listnode_add_before(*currbest, (*currbest)->head, copy);
        } else if (n + 1 == vector_active(vline) && status == MATCHER_NO_MATCH)
                status = MATCHER_INCOMPLETE;
 
        // cleanup
-       list_delete_and_null(&next);
+       list_delete(&next);
 
        return status;
 }
@@ -367,7 +367,7 @@ enum matcher_rv command_complete(struct graph *graph, vector vline,
 
        unsigned int idx;
        for (idx = 0; idx < vector_active(vline) && next->count > 0; idx++) {
-               list_delete_and_null(&current);
+               list_delete(&current);
                current = next;
                next = list_new();
                next->del = stack_del;
@@ -458,8 +458,8 @@ enum matcher_rv command_complete(struct graph *graph, vector vline,
                }
        }
 
-       list_delete_and_null(&current);
-       list_delete_and_null(&next);
+       list_delete(&current);
+       list_delete(&next);
 
        return mrv;
 }
@@ -652,7 +652,7 @@ static void del_arglist(struct list *list)
        list_delete_node(list, tail);
 
        // delete the rest of the list as usual
-       list_delete_and_null(&list);
+       list_delete(&list);
 }
 
 /*---------- token level matching functions ----------*/