Fix a number of Coverity findings

1466460: Uninitialized field in gtp-analyzer.pac
1462465: Null pointer dereference in CompositeHash::SingleValHash
1462463: Copy/paste error in TCPSessionAdapter::build_syn_packet_val
1462067: Uninitialized fields in Zinst
This commit is contained in:
Tim Wojtulewicz 2021-11-29 10:43:34 -07:00
parent d2a9fcda0c
commit 72604f866b
4 changed files with 14 additions and 7 deletions

View file

@ -501,6 +501,11 @@ bool CompositeHash::SingleValHash(HashKey& hk, const Val* v, Type* bt, bool type
return true; return true;
} }
// All of the rest of the code here depends on v not being null, since it needs
// to get values from it.
if ( ! v )
return false;
switch ( t ) switch ( t )
{ {
case TYPE_INTERNAL_INT: case TYPE_INTERNAL_INT:
@ -695,7 +700,7 @@ bool CompositeHash::SingleValHash(HashKey& hk, const Val* v, Type* bt, bool type
} }
break; break;
case TYPE_INTERNAL_ERROR: default:
return false; return false;
} }

View file

@ -610,7 +610,9 @@ connection GTPv1_Conn(zeek_analyzer: ZeekPacketAnalyzer)
%} %}
%init{ %init{
valid_orig = valid_resp = false; valid_orig = false;
valid_resp = false;
packet = nullptr;
%} %}
function valid(orig: bool): bool function valid(orig: bool): bool

View file

@ -422,7 +422,7 @@ static zeek::RecordValPtr build_syn_packet_val(bool is_orig, const zeek::IP_Hdr*
if ( TSval ) if ( TSval )
v->Assign(8, *TSval); v->Assign(8, *TSval);
if ( TSval ) if ( TSecr )
v->Assign(9, *TSecr); v->Assign(9, *TSecr);
return v; return v;

View file

@ -64,9 +64,9 @@ public:
} }
// Create a stub instruction that will be populated later. // Create a stub instruction that will be populated later.
ZInst() { } ZInst() = default;
virtual ~ZInst() { } virtual ~ZInst() = default;
// Methods for printing out the instruction for debugging/maintenance. // Methods for printing out the instruction for debugging/maintenance.
void Dump(bro_uint_t inst_num, const FrameReMap* mappings) const; void Dump(bro_uint_t inst_num, const FrameReMap* mappings) const;
@ -93,8 +93,8 @@ public:
// Returns a string describing the constant. // Returns a string describing the constant.
std::string ConstDump() const; std::string ConstDump() const;
ZOp op; ZOp op = OP_NOP;
ZAMOpType op_type; ZAMOpType op_type = OP_X;
// Usually indices into frame, though sometimes hold integer constants. // Usually indices into frame, though sometimes hold integer constants.
// When an instruction has both frame slots and integer constants, // When an instruction has both frame slots and integer constants,