]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_cmd.c
Merge pull request #9682 from adrianomarto/mesh-group-fix
[mirror_frr.git] / pimd / pim_cmd.c
index 14aa7105242244d024f3a43693de3f6c00c4d51d..4cd94e0df9ac8baecc3a7030633094b19d19e02a 100644 (file)
@@ -3842,7 +3842,7 @@ static void pim_cli_legacy_mesh_group_behavior(struct vty *vty,
                              xpath_member_value)) {
                member_dnode = yang_dnode_get(vty->candidate_config->dnode,
                                              xpath_member_value);
-               if (!yang_is_last_list_dnode(member_dnode))
+               if (!member_dnode || !yang_is_last_list_dnode(member_dnode))
                        return;
        }
 
@@ -4140,10 +4140,9 @@ static void clear_pim_bsr_db(struct pim_instance *pim)
                        rpnode->info = NULL;
                        route_unlock_node(rpnode);
                        route_unlock_node(rpnode);
+                       XFREE(MTYPE_PIM_RP, rp_info);
                }
 
-               XFREE(MTYPE_PIM_RP, rp_info);
-
                pim_free_bsgrp_node(bsgrp->scope->bsrp_table, &bsgrp->group);
                pim_free_bsgrp_data(bsgrp);
        }
@@ -9762,7 +9761,7 @@ DEFPY(no_ip_msdp_mesh_group_member,
                return CMD_WARNING_CONFIG_FAILED;
        }
 
-       nb_cli_enqueue_change(vty, xpath_value, NB_OP_DESTROY, NULL);
+       nb_cli_enqueue_change(vty, xpath_member_value, NB_OP_DESTROY, NULL);
 
        /*
         * If this is the last member, then we must remove the group altogether
@@ -9796,7 +9795,7 @@ DEFPY(ip_msdp_mesh_group_source,
                 "frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
        nb_cli_enqueue_change(vty, xpath_value, NB_OP_CREATE, NULL);
 
-       /* Create mesh group member. */
+       /* Create mesh group source. */
        strlcat(xpath_value, "/source", sizeof(xpath_value));
        nb_cli_enqueue_change(vty, xpath_value, NB_OP_MODIFY, saddr_str);
 
@@ -9827,7 +9826,7 @@ DEFPY(no_ip_msdp_mesh_group_source,
                 "frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
        nb_cli_enqueue_change(vty, xpath_value, NB_OP_CREATE, NULL);
 
-       /* Create mesh group member. */
+       /* Create mesh group source. */
        strlcat(xpath_value, "/source", sizeof(xpath_value));
        nb_cli_enqueue_change(vty, xpath_value, NB_OP_DESTROY, NULL);