summaryrefslogtreecommitdiff
path: root/sys/net/if_gre.c
diff options
context:
space:
mode:
authorDavid Gwynne <dlg@cvs.openbsd.org>2018-02-21 05:20:18 +0000
committerDavid Gwynne <dlg@cvs.openbsd.org>2018-02-21 05:20:18 +0000
commit32a1ccbad2db9f7fd748d635bc9b6051eb100c17 (patch)
treebf858887ec87178d3084d9331b6fae7ebbc5fabd /sys/net/if_gre.c
parentbeeec4f34d083a2c8e349484746712fc7d04a87b (diff)
if egre takes the packet, it's done, don't fall through to l3 processing.
Diffstat (limited to 'sys/net/if_gre.c')
-rw-r--r--sys/net/if_gre.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/net/if_gre.c b/sys/net/if_gre.c
index b7841ed93ff..aba9013f53e 100644
--- a/sys/net/if_gre.c
+++ b/sys/net/if_gre.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_gre.c,v 1.108 2018/02/21 05:19:11 dlg Exp $ */
+/* $OpenBSD: if_gre.c,v 1.109 2018/02/21 05:20:17 dlg Exp $ */
/* $NetBSD: if_gre.c,v 1.9 1999/10/25 19:18:11 drochner Exp $ */
/*
@@ -563,6 +563,8 @@ gre_input_key(struct mbuf **mp, int *offp, int type, int af,
if (gh->gre_proto == htons(ETHERTYPE_TRANSETHER)) {
if (egre_input(key, m, hlen) == -1)
goto decline;
+
+ return (IPPROTO_DONE);
}
sc = gre_find(key);