]> git.proxmox.com Git - mirror_frr.git/commitdiff
pimd: fix coverity/dead-code issue
authorJafar Al-Gharaibeh <jafar@atcorp.com>
Wed, 25 Aug 2021 16:20:22 +0000 (11:20 -0500)
committerJafar Al-Gharaibeh <jafar@atcorp.com>
Wed, 25 Aug 2021 20:10:32 +0000 (15:10 -0500)
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
pimd/pim_igmpv3.c

index 572d3a6abaff166d6421accfd552344a21b41694..bc67a1dd1d96094e300fdde50f2c5bb480738437 100644 (file)
@@ -509,8 +509,22 @@ static void allow(struct igmp_sock *igmp, struct in_addr from,
                  So, deleting the group present.
                */
                group = find_group_by_addr(igmp, group_addr);
-               if (group && (group->group_filtermode_isexcl == 0))
+               if (!group) {
+                       return;
+               }
+               if (group->group_filtermode_isexcl) {
+                       if (listcount(group->group_source_list) == 1) {
+                               struct in_addr star = {.s_addr = INADDR_ANY};
+
+                               source = igmp_find_source_by_addr(group, star);
+                               if (source)
+                                       igmp_source_reset_gmi(igmp, group,
+                                                             source);
+                       }
+               } else {
                        igmp_group_delete(group);
+               }
+
                return;
        }
 
@@ -544,15 +558,6 @@ static void allow(struct igmp_sock *igmp, struct in_addr from,
                igmp_source_reset_gmi(igmp, group, source);
 
        } /* scan received sources */
-
-       if ((num_sources == 0) && (group->group_filtermode_isexcl)
-           && (listcount(group->group_source_list) == 1)) {
-               struct in_addr star = {.s_addr = INADDR_ANY};
-
-               source = igmp_find_source_by_addr(group, star);
-               if (source)
-                       igmp_source_reset_gmi(igmp, group, source);
-       }
 }
 
 void igmpv3_report_isin(struct igmp_sock *igmp, struct in_addr from,