mirror of
https://github.com/FRRouting/frr.git
synced 2025-04-30 13:37:17 +02:00
pimd: fix memory leak and assign allocation type
Use a memory allocation specific type for filter names (to help detect memory leaks) and fix a memory leak when releasing peer memory. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
This commit is contained in:
parent
a02ec27693
commit
d1440dadff
|
@ -26,6 +26,7 @@ DEFINE_MTYPE(PIMD, PIM_STATIC_ROUTE, "PIM Static Route");
|
||||||
DEFINE_MTYPE(PIMD, PIM_RP, "PIM RP info");
|
DEFINE_MTYPE(PIMD, PIM_RP, "PIM RP info");
|
||||||
DEFINE_MTYPE(PIMD, PIM_FILTER_NAME, "PIM RP filter info");
|
DEFINE_MTYPE(PIMD, PIM_FILTER_NAME, "PIM RP filter info");
|
||||||
DEFINE_MTYPE(PIMD, PIM_MSDP_PEER, "PIM MSDP peer");
|
DEFINE_MTYPE(PIMD, PIM_MSDP_PEER, "PIM MSDP peer");
|
||||||
|
DEFINE_MTYPE(PIMD, PIM_MSDP_FILTER_NAME, "PIM MSDP peer filter name");
|
||||||
DEFINE_MTYPE(PIMD, PIM_MSDP_MG_NAME, "PIM MSDP mesh-group name");
|
DEFINE_MTYPE(PIMD, PIM_MSDP_MG_NAME, "PIM MSDP mesh-group name");
|
||||||
DEFINE_MTYPE(PIMD, PIM_MSDP_AUTH_KEY, "PIM MSDP authentication key");
|
DEFINE_MTYPE(PIMD, PIM_MSDP_AUTH_KEY, "PIM MSDP authentication key");
|
||||||
DEFINE_MTYPE(PIMD, PIM_MSDP_SA, "PIM MSDP source-active cache");
|
DEFINE_MTYPE(PIMD, PIM_MSDP_SA, "PIM MSDP source-active cache");
|
||||||
|
|
|
@ -25,6 +25,7 @@ DECLARE_MTYPE(PIM_STATIC_ROUTE);
|
||||||
DECLARE_MTYPE(PIM_RP);
|
DECLARE_MTYPE(PIM_RP);
|
||||||
DECLARE_MTYPE(PIM_FILTER_NAME);
|
DECLARE_MTYPE(PIM_FILTER_NAME);
|
||||||
DECLARE_MTYPE(PIM_MSDP_PEER);
|
DECLARE_MTYPE(PIM_MSDP_PEER);
|
||||||
|
DECLARE_MTYPE(PIM_MSDP_FILTER_NAME);
|
||||||
DECLARE_MTYPE(PIM_MSDP_MG_NAME);
|
DECLARE_MTYPE(PIM_MSDP_MG_NAME);
|
||||||
DECLARE_MTYPE(PIM_MSDP_SA);
|
DECLARE_MTYPE(PIM_MSDP_SA);
|
||||||
DECLARE_MTYPE(PIM_MSDP_MG);
|
DECLARE_MTYPE(PIM_MSDP_MG);
|
||||||
|
|
|
@ -1095,6 +1095,8 @@ static void pim_msdp_peer_free(struct pim_msdp_peer *mp)
|
||||||
if (mp->auth_listen_sock != -1)
|
if (mp->auth_listen_sock != -1)
|
||||||
close(mp->auth_listen_sock);
|
close(mp->auth_listen_sock);
|
||||||
|
|
||||||
|
XFREE(MTYPE_PIM_MSDP_FILTER_NAME, mp->acl_in);
|
||||||
|
XFREE(MTYPE_PIM_MSDP_FILTER_NAME, mp->acl_out);
|
||||||
XFREE(MTYPE_PIM_MSDP_MG_NAME, mp->mesh_group_name);
|
XFREE(MTYPE_PIM_MSDP_MG_NAME, mp->mesh_group_name);
|
||||||
|
|
||||||
mp->pim = NULL;
|
mp->pim = NULL;
|
||||||
|
|
|
@ -1564,8 +1564,8 @@ int pim_msdp_peer_sa_filter_in_modify(struct nb_cb_modify_args *args)
|
||||||
break;
|
break;
|
||||||
case NB_EV_APPLY:
|
case NB_EV_APPLY:
|
||||||
mp = nb_running_get_entry(args->dnode, NULL, true);
|
mp = nb_running_get_entry(args->dnode, NULL, true);
|
||||||
XFREE(MTYPE_TMP, mp->acl_in);
|
XFREE(MTYPE_PIM_MSDP_FILTER_NAME, mp->acl_in);
|
||||||
mp->acl_in = XSTRDUP(MTYPE_TMP,
|
mp->acl_in = XSTRDUP(MTYPE_PIM_MSDP_FILTER_NAME,
|
||||||
yang_dnode_get_string(args->dnode, NULL));
|
yang_dnode_get_string(args->dnode, NULL));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1585,7 +1585,7 @@ int pim_msdp_peer_sa_filter_in_destroy(struct nb_cb_destroy_args *args)
|
||||||
break;
|
break;
|
||||||
case NB_EV_APPLY:
|
case NB_EV_APPLY:
|
||||||
mp = nb_running_get_entry(args->dnode, NULL, true);
|
mp = nb_running_get_entry(args->dnode, NULL, true);
|
||||||
XFREE(MTYPE_TMP, mp->acl_in);
|
XFREE(MTYPE_PIM_MSDP_FILTER_NAME, mp->acl_in);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1608,8 +1608,8 @@ int pim_msdp_peer_sa_filter_out_modify(struct nb_cb_modify_args *args)
|
||||||
break;
|
break;
|
||||||
case NB_EV_APPLY:
|
case NB_EV_APPLY:
|
||||||
mp = nb_running_get_entry(args->dnode, NULL, true);
|
mp = nb_running_get_entry(args->dnode, NULL, true);
|
||||||
XFREE(MTYPE_TMP, mp->acl_out);
|
XFREE(MTYPE_PIM_MSDP_FILTER_NAME, mp->acl_out);
|
||||||
mp->acl_out = XSTRDUP(MTYPE_TMP,
|
mp->acl_out = XSTRDUP(MTYPE_PIM_MSDP_FILTER_NAME,
|
||||||
yang_dnode_get_string(args->dnode, NULL));
|
yang_dnode_get_string(args->dnode, NULL));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1629,7 +1629,7 @@ int pim_msdp_peer_sa_filter_out_destroy(struct nb_cb_destroy_args *args)
|
||||||
break;
|
break;
|
||||||
case NB_EV_APPLY:
|
case NB_EV_APPLY:
|
||||||
mp = nb_running_get_entry(args->dnode, NULL, true);
|
mp = nb_running_get_entry(args->dnode, NULL, true);
|
||||||
XFREE(MTYPE_TMP, mp->acl_out);
|
XFREE(MTYPE_PIM_MSDP_FILTER_NAME, mp->acl_out);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue