From 4d546fa824731c285a9d601e16a415c7e7269fc0 Mon Sep 17 00:00:00 2001 From: Duncan Roe Date: Thu, 14 Nov 2019 10:05:32 +1100 Subject: src: Make sure pktb_alloc() works for IPv6 over AF_BRIDGE At least on the local interface, the MAC header of an IPv6 packet specifies IPv6 protocol (rather than IP). This surprised me, since the first octet of the IP datagram is the IP version, but I guess it's an efficiency thing. Without this patch, pktb_alloc() returns NULL when an IPv6 packet is encountered. Updated: src/extra/pktbuff.c: - Treat ETH_P_IPV6 the same as ETH_P_IP. Signed-off-by: Duncan Roe Signed-off-by: Pablo Neira Ayuso --- src/extra/pktbuff.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/extra/pktbuff.c b/src/extra/pktbuff.c index c52b674..f1f8323 100644 --- a/src/extra/pktbuff.c +++ b/src/extra/pktbuff.c @@ -73,6 +73,7 @@ struct pkt_buff *pktb_alloc(int family, void *data, size_t len, size_t extra) switch(ethhdr->h_proto) { case ETH_P_IP: + case ETH_P_IPV6: pktb->network_header = pktb->data + ETH_HLEN; break; default: -- cgit v1.2.3