diff options
| author | Rafael Zalamena <rzalamena@opensourcerouting.org> | 2024-12-12 22:44:29 -0300 |
|---|---|---|
| committer | Rafael Zalamena <rzalamena@opensourcerouting.org> | 2024-12-13 08:28:42 -0300 |
| commit | a507ca11633672fb9ab0b5bac8116a130494b6af (patch) | |
| tree | 1e46165be7401e3dd023c860c5b9bd35f5b3d6f1 /pimd/pim_nb_config.c | |
| parent | f7720ab68fcfb24e7fa51f682d248086c45ef85a (diff) | |
pimd,pim6d: optimize multicast prefix generation
Fix Coverity Scan CID 1602463: make it impossible for the function to fail.
Hardcode the multicast prefix generation instead of calling `str2prefix()`
which caused unnecessary memory allocations and returned error values.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
Diffstat (limited to 'pimd/pim_nb_config.c')
| -rw-r--r-- | pimd/pim_nb_config.c | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/pimd/pim_nb_config.c b/pimd/pim_nb_config.c index 30895e0377..cf9ae21cc0 100644 --- a/pimd/pim_nb_config.c +++ b/pimd/pim_nb_config.c @@ -2825,13 +2825,7 @@ int routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp else if (yang_dnode_get(args->dnode, "prefix-list")) { plist = yang_dnode_get_string(args->dnode, "./prefix-list"); - if (!pim_get_all_mcast_group(&group)) { - flog_err( - EC_LIB_DEVELOPMENT, - "Unable to convert 224.0.0.0/4 to prefix"); - return NB_ERR_INCONSISTENCY; - } - + pim_get_all_mcast_group(&group); result = pim_no_rp_cmd_worker(pim, rp_addr, group, plist, args->errmsg, args->errmsg_len); @@ -2923,11 +2917,7 @@ int routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp pim = vrf->info; plist = yang_dnode_get_string(args->dnode, NULL); yang_dnode_get_pimaddr(&rp_addr, args->dnode, "../rp-address"); - if (!pim_get_all_mcast_group(&group)) { - flog_err(EC_LIB_DEVELOPMENT, - "Unable to convert 224.0.0.0/4 to prefix"); - return NB_ERR_INCONSISTENCY; - } + pim_get_all_mcast_group(&group); return pim_rp_cmd_worker(pim, rp_addr, group, plist, args->errmsg, args->errmsg_len); } @@ -2954,11 +2944,7 @@ int routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp pim = vrf->info; yang_dnode_get_pimaddr(&rp_addr, args->dnode, "../rp-address"); plist = yang_dnode_get_string(args->dnode, NULL); - if (!pim_get_all_mcast_group(&group)) { - flog_err(EC_LIB_DEVELOPMENT, - "Unable to convert 224.0.0.0/4 to prefix"); - return NB_ERR_INCONSISTENCY; - } + pim_get_all_mcast_group(&group); return pim_no_rp_cmd_worker(pim, rp_addr, group, plist, args->errmsg, args->errmsg_len); break; |
