From 61fa748e9d7c3092d3dda96db6da2f70f2db6b20 Mon Sep 17 00:00:00 2001 From: Jeff Lucovsky Date: Mon, 24 May 2021 08:03:02 -0400 Subject: [PATCH] decode/vxlan: Delay var init until needed This commit modifies the var initialization slightly until after integrity checks have been performed. --- src/decode-vxlan.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/decode-vxlan.c b/src/decode-vxlan.c index e08a4873c0..6a7322993e 100644 --- a/src/decode-vxlan.c +++ b/src/decode-vxlan.c @@ -126,10 +126,7 @@ void DecodeVXLANConfig(void) int DecodeVXLAN(ThreadVars *tv, DecodeThreadVars *dtv, Packet *p, const uint8_t *pkt, uint32_t len) { - EthernetHdr *ethh = (EthernetHdr *)(pkt + VXLAN_HEADER_LEN); - - uint16_t eth_type; - int decode_tunnel_proto = DECODE_TUNNEL_UNSET; + DEBUG_VALIDATE_BUG_ON(pkt == NULL); /* Initial packet validation */ if (unlikely(!g_vxlan_enabled)) @@ -153,8 +150,11 @@ int DecodeVXLAN(ThreadVars *tv, DecodeThreadVars *dtv, Packet *p, /* Increment stats counter for VXLAN packets */ StatsIncr(tv, dtv->counter_vxlan); + EthernetHdr *ethh = (EthernetHdr *)(pkt + VXLAN_HEADER_LEN); + int decode_tunnel_proto = DECODE_TUNNEL_UNSET; + /* Look at encapsulated Ethernet frame to get next protocol */ - eth_type = SCNtohs(ethh->eth_type); + uint16_t eth_type = SCNtohs(ethh->eth_type); SCLogDebug("VXLAN ethertype 0x%04x", eth_type); switch (eth_type) {