summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Thompson <thompsa@FreeBSD.org>2007-12-29 17:29:11 +0000
committerAndrew Thompson <thompsa@FreeBSD.org>2007-12-29 17:29:11 +0000
commitf3931b63ebef646e9c7ce76f8ee4e4ff491355c5 (patch)
treea137104e4a5ac743e64ea2adff1e9bc6076825f7
parent4b2d1164e89f1b508415840ea22b683fdc1fc886 (diff)
Notes
-rw-r--r--sys/net/if_enc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/net/if_enc.c b/sys/net/if_enc.c
index edc3ca3de71b..5204b454f184 100644
--- a/sys/net/if_enc.c
+++ b/sys/net/if_enc.c
@@ -255,6 +255,13 @@ ipsec_filter(struct mbuf **mp, int dir)
printf("%s: unknown IP version\n", __func__);
}
+ /*
+ * If the mbuf was consumed by the filter for requeueing (dummynet, etc)
+ * then error will be zero but we still want to return an error to our
+ * caller so the null mbuf isn't forwarded further.
+ */
+ if (*mp == NULL && error == 0)
+ return (-1); /* Consumed by the filter */
if (*mp == NULL)
return (error);
if (error != 0)