]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_ssm.c
lib: enforce vrf_name_to_id by returning default_vrf when name is null
[mirror_frr.git] / pimd / pim_ssm.c
index 8d270e620563fc8fbb8d0d9e754ec65b54329d3e..dfc7063fd0f6ad9f0121cccc3e6bae4fc55da869 100644 (file)
@@ -24,6 +24,7 @@
 #include <lib/vty.h>
 #include <lib/vrf.h>
 #include <lib/plist.h>
+#include <lib/lib_errors.h>
 
 #include "pimd.h"
 #include "pim_ssm.h"
@@ -48,7 +49,7 @@ static void pim_ssm_range_reevaluate(struct pim_instance *pim)
         * disappear in time for SSM groups.
         */
        pim_upstream_register_reevaluate(pim);
-       igmp_source_forward_reevaluate_all();
+       igmp_source_forward_reevaluate_all(pim);
 }
 
 void pim_ssm_prefix_list_update(struct pim_instance *pim,
@@ -71,7 +72,11 @@ static int pim_is_grp_standard_ssm(struct prefix *group)
        static struct prefix group_ssm;
 
        if (first) {
-               str2prefix(PIM_SSM_STANDARD_RANGE, &group_ssm);
+               if (!str2prefix(PIM_SSM_STANDARD_RANGE, &group_ssm))
+                       flog_err(EC_LIB_DEVELOPMENT,
+                                "%s: Failure to Read Group Address: %s",
+                                __PRETTY_FUNCTION__, PIM_SSM_STANDARD_RANGE);
+
                first = 0;
        }
 
@@ -143,6 +148,11 @@ void *pim_ssm_init(void)
 
 void pim_ssm_terminate(struct pim_ssm *ssm)
 {
-       if (ssm && ssm->plist_name)
+       if (!ssm)
+               return;
+
+       if (ssm->plist_name)
                XFREE(MTYPE_PIM_FILTER_NAME, ssm->plist_name);
+
+       XFREE(MTYPE_PIM_SSM_INFO, ssm);
 }