decode/vxlan: Delay var init until needed

This commit modifies the var initialization slightly until after
integrity checks have been performed.
pull/6172/head
Jeff Lucovsky 4 years ago committed by Victor Julien
parent 415db83d2d
commit 61fa748e9d

@ -126,10 +126,7 @@ void DecodeVXLANConfig(void)
int DecodeVXLAN(ThreadVars *tv, DecodeThreadVars *dtv, Packet *p, int DecodeVXLAN(ThreadVars *tv, DecodeThreadVars *dtv, Packet *p,
const uint8_t *pkt, uint32_t len) const uint8_t *pkt, uint32_t len)
{ {
EthernetHdr *ethh = (EthernetHdr *)(pkt + VXLAN_HEADER_LEN); DEBUG_VALIDATE_BUG_ON(pkt == NULL);
uint16_t eth_type;
int decode_tunnel_proto = DECODE_TUNNEL_UNSET;
/* Initial packet validation */ /* Initial packet validation */
if (unlikely(!g_vxlan_enabled)) if (unlikely(!g_vxlan_enabled))
@ -153,8 +150,11 @@ int DecodeVXLAN(ThreadVars *tv, DecodeThreadVars *dtv, Packet *p,
/* Increment stats counter for VXLAN packets */ /* Increment stats counter for VXLAN packets */
StatsIncr(tv, dtv->counter_vxlan); 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 */ /* 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); SCLogDebug("VXLAN ethertype 0x%04x", eth_type);
switch (eth_type) { switch (eth_type) {

Loading…
Cancel
Save