Page MenuHomeFreeBSD

D30638.diff
No OneTemporary

D30638.diff

diff --git a/sys/net/if_vxlan.c b/sys/net/if_vxlan.c
--- a/sys/net/if_vxlan.c
+++ b/sys/net/if_vxlan.c
@@ -2814,12 +2814,16 @@
struct ether_header *eh;
int error;
+ m = *m0;
+
+ if (m->m_pkthdr.len < ETHER_HDR_LEN)
+ return (EINVAL);
+
sc = vxlan_socket_lookup_softc(vso, vni);
if (sc == NULL)
return (ENOENT);
ifp = sc->vxl_ifp;
- m = *m0;
eh = mtod(m, struct ether_header *);
if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) {
@@ -2859,8 +2863,9 @@
m->m_pkthdr.csum_data = 0;
}
- error = netisr_dispatch(NETISR_ETHER, m);
+ (*ifp->if_input)(ifp, m);
*m0 = NULL;
+ error = 0;
out:
vxlan_release(sc);

File Metadata

Mime Type
text/plain
Expires
Sun, Nov 24, 5:01 AM (17 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14815303
Default Alt Text
D30638.diff (639 B)

Event Timeline