Hello Ralf,

I think we should rather give a try diff below. I would rather add
a return after m_freem(). Will diff below work for you too?

thanks for looking into it.
regards
sashan

--------8<---------------8<---------------8<------------------8<--------
diff --git a/sys/netinet/ip_carp.c b/sys/netinet/ip_carp.c
index 0d52cffa606..4cfe18eaf1c 100644
--- a/sys/netinet/ip_carp.c
+++ b/sys/netinet/ip_carp.c
@@ -2283,8 +2283,10 @@ carp_transmit(struct carp_softc *sc, struct ifnet *ifp0, 
struct mbuf *m)
        {
                caddr_t if_bpf = ifp->if_bpf;
                if (if_bpf) {
-                       if (bpf_mtap_ether(if_bpf, m, BPF_DIRECTION_OUT))
+                       if (bpf_mtap_ether(if_bpf, m, BPF_DIRECTION_OUT)) {
                                m_freem(m);
+                               return;
+                       }
                }
        }
 #endif /* NBPFILTER > 0 */

Reply via email to