From: Mike Stepanek (mstepane) Date: Wed, 9 Oct 2019 17:04:38 +0000 (-0400) Subject: Merge pull request #1783 in SNORT/snort3 from ~DAVMCPHE/snort3:packet_object_init... X-Git-Tag: 3.0.0-263~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=790bf41ee217b6257474826377445368d8137b1e;p=thirdparty%2Fsnort3.git Merge pull request #1783 in SNORT/snort3 from ~DAVMCPHE/snort3:packet_object_init to master Squashed commit of the following: commit 74aa43b0bc78b8747eb8a65f8f166390bae6e14a Author: davis mcpherson Date: Mon Oct 7 10:48:34 2019 -0400 packet: ensure all member variables of the Packet class are initialized at instantiation and when an instance is reset --- diff --git a/src/protocols/packet.cc b/src/protocols/packet.cc index a58bbe9aa..904208ab2 100644 --- a/src/protocols/packet.cc +++ b/src/protocols/packet.cc @@ -53,6 +53,7 @@ Packet::Packet(bool packet_data) obfuscator = nullptr; endianness = nullptr; active_inst = new Active; + action_inst = nullptr; reset(); } @@ -84,6 +85,12 @@ void Packet::reset() release_helpers(); ptrs.reset(); + + iplist_id = 0; + user_inspection_policy_id = 0; + user_ips_policy_id = 0; + user_network_policy_id = 0; + vlan_idx = 0; } void Packet::release_helpers() diff --git a/src/protocols/packet_manager.cc b/src/protocols/packet_manager.cc index ac763fefa..f182abb35 100644 --- a/src/protocols/packet_manager.cc +++ b/src/protocols/packet_manager.cc @@ -613,11 +613,9 @@ const uint8_t* PacketManager::encode_reject(UnreachResponse type, } } -static void set_hdr( +static void init_daq_pkthdr( const Packet* p, Packet* c, const DAQ_PktHdr_t* phdr, uint32_t opaque) { - c->reset(); - if ( !phdr ) phdr = p->pkth; @@ -646,7 +644,7 @@ int PacketManager::format_tcp( const DAQ_PktHdr_t* phdr, uint32_t opaque) { c->reset(); - set_hdr(p, c, phdr, opaque); + init_daq_pkthdr(p, c, phdr, opaque); c->packet_flags |= PKT_PSEUDO; c->pseudo_type = type; @@ -679,7 +677,7 @@ int PacketManager::encode_format( return -1; c->reset(); - set_hdr(p, c, phdr, opaque); + init_daq_pkthdr(p, c, phdr, opaque); if ( f & ENC_FLAG_NET ) {