summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
authorgonzo <gonzo@FreeBSD.org>2008-07-04 21:01:30 +0000
committergonzo <gonzo@FreeBSD.org>2008-07-04 21:01:30 +0000
commit3e88043a6cb4e756160cd02ea26d7205e8b3faf0 (patch)
tree9dd30dd14e217a34b0d4497b8e90a3c4a2e401ee /sys/netinet
parent1ad481ce503efa104fda8e761b36f7d969822242 (diff)
downloadFreeBSD-src-3e88043a6cb4e756160cd02ea26d7205e8b3faf0.zip
FreeBSD-src-3e88043a6cb4e756160cd02ea26d7205e8b3faf0.tar.gz
Enqueue de-capsulated packet instead of performing direct dispatch. It's
possible to exhaust and garble stack with a packet that contains a couple of hundreds nested encapsulation levels. Submitted by: Ming Fu <fming@borderware.com> Reviewed by: rwatson PR: kern/85320
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/ip_gre.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet/ip_gre.c b/sys/netinet/ip_gre.c
index e985006..218cc6e 100644
--- a/sys/netinet/ip_gre.c
+++ b/sys/netinet/ip_gre.c
@@ -214,7 +214,7 @@ gre_input2(struct mbuf *m ,int hlen, u_char proto)
m->m_pkthdr.rcvif = GRE2IFP(sc);
- netisr_dispatch(isr, m);
+ netisr_queue(isr, m);
/* Packet is done, no further processing needed. */
return (NULL);
@@ -298,7 +298,7 @@ gre_mobile_input(struct mbuf *m, int hlen)
m->m_pkthdr.rcvif = GRE2IFP(sc);
- netisr_dispatch(NETISR_IP, m);
+ netisr_queue(NETISR_IP, m);
}
/*
OpenPOWER on IntegriCloud