mirror of
https://github.com/FRRouting/frr.git
synced 2025-04-30 05:27:16 +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_FILTER_NAME, "PIM RP filter info");
|
||||
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_AUTH_KEY, "PIM MSDP authentication key");
|
||||
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_FILTER_NAME);
|
||||
DECLARE_MTYPE(PIM_MSDP_PEER);
|
||||
DECLARE_MTYPE(PIM_MSDP_FILTER_NAME);
|
||||
DECLARE_MTYPE(PIM_MSDP_MG_NAME);
|
||||
DECLARE_MTYPE(PIM_MSDP_SA);
|
||||
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)
|
||||
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);
|
||||
|
||||
mp->pim = NULL;
|
||||
|
|
|
@ -1564,8 +1564,8 @@ int pim_msdp_peer_sa_filter_in_modify(struct nb_cb_modify_args *args)
|
|||
break;
|
||||
case NB_EV_APPLY:
|
||||
mp = nb_running_get_entry(args->dnode, NULL, true);
|
||||
XFREE(MTYPE_TMP, mp->acl_in);
|
||||
mp->acl_in = XSTRDUP(MTYPE_TMP,
|
||||
XFREE(MTYPE_PIM_MSDP_FILTER_NAME, mp->acl_in);
|
||||
mp->acl_in = XSTRDUP(MTYPE_PIM_MSDP_FILTER_NAME,
|
||||
yang_dnode_get_string(args->dnode, NULL));
|
||||
break;
|
||||
}
|
||||
|
@ -1585,7 +1585,7 @@ int pim_msdp_peer_sa_filter_in_destroy(struct nb_cb_destroy_args *args)
|
|||
break;
|
||||
case NB_EV_APPLY:
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -1608,8 +1608,8 @@ int pim_msdp_peer_sa_filter_out_modify(struct nb_cb_modify_args *args)
|
|||
break;
|
||||
case NB_EV_APPLY:
|
||||
mp = nb_running_get_entry(args->dnode, NULL, true);
|
||||
XFREE(MTYPE_TMP, mp->acl_out);
|
||||
mp->acl_out = XSTRDUP(MTYPE_TMP,
|
||||
XFREE(MTYPE_PIM_MSDP_FILTER_NAME, mp->acl_out);
|
||||
mp->acl_out = XSTRDUP(MTYPE_PIM_MSDP_FILTER_NAME,
|
||||
yang_dnode_get_string(args->dnode, NULL));
|
||||
break;
|
||||
}
|
||||
|
@ -1629,7 +1629,7 @@ int pim_msdp_peer_sa_filter_out_destroy(struct nb_cb_destroy_args *args)
|
|||
break;
|
||||
case NB_EV_APPLY:
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue