aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/netpfil/pf/pf_if.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/sys/netpfil/pf/pf_if.c b/sys/netpfil/pf/pf_if.c
index 3c5bcc95f7cf..a5f26b5624bd 100644
--- a/sys/netpfil/pf/pf_if.c
+++ b/sys/netpfil/pf/pf_if.c
@@ -608,12 +608,19 @@ pfi_kkif_update(struct pfi_kkif *kif)
}
/* again for all groups kif is member of */
- if (kif->pfik_ifp != NULL) {
- CK_STAILQ_FOREACH(ifgl, &kif->pfik_ifp->if_groups, ifgl_next)
- if (ifgl->ifgl_group->ifg_pf_kif) {
- pfi_kkif_update((struct pfi_kkif *)
- ifgl->ifgl_group->ifg_pf_kif);
- }
+ if (kif->pfik_ifp == NULL)
+ return;
+
+ CK_STAILQ_FOREACH(ifgl, &kif->pfik_ifp->if_groups, ifgl_next) {
+ if (strcmp(ifgl->ifgl_group->ifg_group, kif->pfik_name) == 0) {
+ printf("pf: WARNING conflicting group / interface name %s\n",
+ kif->pfik_name);
+ continue;
+ }
+ if (ifgl->ifgl_group->ifg_pf_kif) {
+ pfi_kkif_update((struct pfi_kkif *)
+ ifgl->ifgl_group->ifg_pf_kif);
+ }
}
}