Merge remote-tracking branch 'origin/topic/timw/nullptr'

* origin/topic/timw/nullptr:
  The remaining nulls
  plugin/probabilistic/zeekygen: Replace nulls with nullptr
  file_analysis: Replace nulls with nullptr
  analyzer: Replace nulls with nullptr
  iosource/threading/input/logging: Replace nulls with nullptr
This commit is contained in:
Johanna Amann 2020-04-09 08:47:44 -07:00
commit a3a38f0849
187 changed files with 1119 additions and 1117 deletions

View file

@ -1,4 +1,10 @@
3.2.0-dev.378 | 2020-04-09 08:47:44 -0700
* Replace most of the uses of 0 or NULL to indicate null pointers with nullptr.
This change does not change any calls to syscalls, in the interest of passing
what the API for those calls says to pass. (Tim Wojtulewicz, Corelight)
3.2.0-dev.372 | 2020-04-08 14:00:28 -0700 3.2.0-dev.372 | 2020-04-08 14:00:28 -0700
* Lazy-initalize some of the fields in Frame to reduce size (Tim Wojtulewicz, Corelight) * Lazy-initalize some of the fields in Frame to reduce size (Tim Wojtulewicz, Corelight)

View file

@ -1 +1 @@
3.2.0-dev.372 3.2.0-dev.378

View file

@ -12,7 +12,7 @@
#include "Reporter.h" #include "Reporter.h"
AnonymizeIPAddr* ip_anonymizer[NUM_ADDR_ANONYMIZATION_METHODS] = {0}; AnonymizeIPAddr* ip_anonymizer[NUM_ADDR_ANONYMIZATION_METHODS] = {nullptr};
static uint32_t rand32() static uint32_t rand32()
{ {
@ -148,7 +148,7 @@ AnonymizeIPAddr_A50::~AnonymizeIPAddr_A50()
void AnonymizeIPAddr_A50::init() void AnonymizeIPAddr_A50::init()
{ {
root = next_free_node = 0; root = next_free_node = nullptr;
// Prepare special nodes for 0.0.0.0 and 255.255.255.255. // Prepare special nodes for 0.0.0.0 and 255.255.255.255.
memset(&special_nodes[0], 0, sizeof(special_nodes)); memset(&special_nodes[0], 0, sizeof(special_nodes));
@ -222,7 +222,7 @@ AnonymizeIPAddr_A50::Node* AnonymizeIPAddr_A50::new_node_block()
for ( int i = 1; i < block_size - 1; ++i ) for ( int i = 1; i < block_size - 1; ++i )
block[i].child[0] = &block[i+1]; block[i].child[0] = &block[i+1];
block[block_size - 1].child[0] = 0; block[block_size - 1].child[0] = nullptr;
next_free_node = &block[1]; next_free_node = &block[1];
return &block[0]; return &block[0];
@ -276,12 +276,12 @@ AnonymizeIPAddr_A50::Node* AnonymizeIPAddr_A50::make_peer(ipaddr32_t a, Node* n)
Node* down[2]; Node* down[2];
if ( ! (down[0] = new_node()) ) if ( ! (down[0] = new_node()) )
return 0; return nullptr;
if ( ! (down[1] = new_node()) ) if ( ! (down[1] = new_node()) )
{ {
free_node(down[0]); free_node(down[0]);
return 0; return nullptr;
} }
// swivel is first bit 'a' and 'old->input' differ. // swivel is first bit 'a' and 'old->input' differ.
@ -292,7 +292,7 @@ AnonymizeIPAddr_A50::Node* AnonymizeIPAddr_A50::make_peer(ipaddr32_t a, Node* n)
down[bitvalue]->input = a; down[bitvalue]->input = a;
down[bitvalue]->output = make_output(n->output, swivel); down[bitvalue]->output = make_output(n->output, swivel);
down[bitvalue]->child[0] = down[bitvalue]->child[1] = 0; down[bitvalue]->child[0] = down[bitvalue]->child[1] = nullptr;
*down[1 - bitvalue] = *n; // copy orig node down one level *down[1 - bitvalue] = *n; // copy orig node down one level
@ -316,7 +316,7 @@ AnonymizeIPAddr_A50::Node* AnonymizeIPAddr_A50::find_node(ipaddr32_t a)
root = new_node(); root = new_node();
root->input = a; root->input = a;
root->output = rand32(); root->output = rand32();
root->child[0] = root->child[1] = 0; root->child[0] = root->child[1] = nullptr;
return root; return root;
} }
@ -351,12 +351,12 @@ AnonymizeIPAddr_A50::Node* AnonymizeIPAddr_A50::find_node(ipaddr32_t a)
} }
reporter->InternalError("out of memory!"); reporter->InternalError("out of memory!");
return 0; return nullptr;
} }
void init_ip_addr_anonymizers() void init_ip_addr_anonymizers()
{ {
ip_anonymizer[KEEP_ORIG_ADDR] = 0; ip_anonymizer[KEEP_ORIG_ADDR] = nullptr;
ip_anonymizer[SEQUENTIALLY_NUMBERED] = new AnonymizeIPAddr_Seq(); ip_anonymizer[SEQUENTIALLY_NUMBERED] = new AnonymizeIPAddr_Seq();
ip_anonymizer[RANDOM_MD5] = new AnonymizeIPAddr_RandomMD5(); ip_anonymizer[RANDOM_MD5] = new AnonymizeIPAddr_RandomMD5();
ip_anonymizer[PREFIX_PRESERVING_A50] = new AnonymizeIPAddr_A50(); ip_anonymizer[PREFIX_PRESERVING_A50] = new AnonymizeIPAddr_A50();
@ -365,7 +365,7 @@ void init_ip_addr_anonymizers()
ipaddr32_t anonymize_ip(ipaddr32_t ip, enum ip_addr_anonymization_class_t cl) ipaddr32_t anonymize_ip(ipaddr32_t ip, enum ip_addr_anonymization_class_t cl)
{ {
TableVal* preserve_addr = 0; TableVal* preserve_addr = nullptr;
AddrVal addr(ip); AddrVal addr(ip);
int method = -1; int method = -1;

View file

@ -197,7 +197,7 @@ void Attributes::AddAttrs(Attributes* a)
Attr* Attributes::FindAttr(attr_tag t) const Attr* Attributes::FindAttr(attr_tag t) const
{ {
if ( ! attrs ) if ( ! attrs )
return 0; return nullptr;
for ( const auto& a : *attrs ) for ( const auto& a : *attrs )
{ {
@ -205,7 +205,7 @@ Attr* Attributes::FindAttr(attr_tag t) const
return a; return a;
} }
return 0; return nullptr;
} }
void Attributes::RemoveAttr(attr_tag t) void Attributes::RemoveAttr(attr_tag t)

View file

@ -55,7 +55,7 @@ int* Base64Converter::InitBase64Table(const string& alphabet)
if ( alphabet == default_alphabet && default_table_initialized ) if ( alphabet == default_alphabet && default_table_initialized )
return default_base64_table; return default_base64_table;
int* base64_table = 0; int* base64_table = nullptr;
if ( alphabet == default_alphabet ) if ( alphabet == default_alphabet )
{ {
@ -98,7 +98,7 @@ Base64Converter::Base64Converter(Connection* arg_conn, const string& arg_alphabe
alphabet = default_alphabet; alphabet = default_alphabet;
} }
base64_table = 0; base64_table = nullptr;
base64_group_next = 0; base64_group_next = 0;
base64_padding = base64_after_padding = 0; base64_padding = base64_after_padding = 0;
errored = 0; errored = 0;
@ -234,7 +234,7 @@ BroString* decode_base64(const BroString* s, const BroString* a, Connection* con
{ {
reporter->Error("base64 decoding alphabet is not 64 characters: %s", reporter->Error("base64 decoding alphabet is not 64 characters: %s",
a->CheckString()); a->CheckString());
return 0; return nullptr;
} }
int buf_len = int((s->Len() + 3) / 4) * 3 + 1; int buf_len = int((s->Len() + 3) / 4) * 3 + 1;
@ -259,7 +259,7 @@ BroString* decode_base64(const BroString* s, const BroString* a, Connection* con
err: err:
delete [] rbuf; delete [] rbuf;
return 0; return nullptr;
} }
BroString* encode_base64(const BroString* s, const BroString* a, Connection* conn) BroString* encode_base64(const BroString* s, const BroString* a, Connection* conn)
@ -268,10 +268,10 @@ BroString* encode_base64(const BroString* s, const BroString* a, Connection* con
{ {
reporter->Error("base64 alphabet is not 64 characters: %s", reporter->Error("base64 alphabet is not 64 characters: %s",
a->CheckString()); a->CheckString());
return 0; return nullptr;
} }
char* outbuf = 0; char* outbuf = nullptr;
int outlen = 0; int outlen = 0;
Base64Converter enc(conn, a ? a->CheckString() : ""); Base64Converter enc(conn, a ? a->CheckString() : "");
enc.Encode(s->Len(), (const unsigned char*) s->Bytes(), &outlen, &outbuf); enc.Encode(s->Len(), (const unsigned char*) s->Bytes(), &outlen, &outbuf);

View file

@ -59,5 +59,5 @@ protected:
}; };
BroString* decode_base64(const BroString* s, const BroString* a = 0, Connection* conn = 0); BroString* decode_base64(const BroString* s, const BroString* a = nullptr, Connection* conn = nullptr);
BroString* encode_base64(const BroString* s, const BroString* a = 0, Connection* conn = 0); BroString* encode_base64(const BroString* s, const BroString* a = nullptr, Connection* conn = nullptr);

View file

@ -284,7 +284,7 @@ BroString* BroString::GetSubstring(int start, int len) const
{ {
// This code used to live in zeek.bif's sub_bytes() routine. // This code used to live in zeek.bif's sub_bytes() routine.
if ( start < 0 || start > n ) if ( start < 0 || start > n )
return 0; return nullptr;
if ( len < 0 || len > n - start ) if ( len < 0 || len > n - start )
len = n - start; len = n - start;
@ -302,7 +302,7 @@ BroString::Vec* BroString::Split(const BroString::IdxVec& indices) const
unsigned int i; unsigned int i;
if ( indices.empty() ) if ( indices.empty() )
return 0; return nullptr;
// Copy input, ensuring space for "0": // Copy input, ensuring space for "0":
IdxVec idx(1 + indices.size()); IdxVec idx(1 + indices.size());
@ -343,7 +343,7 @@ VectorVal* BroString:: VecToPolicy(Vec* vec)
VectorVal* result = VectorVal* result =
new VectorVal(internal_type("string_vec")->AsVectorType()); new VectorVal(internal_type("string_vec")->AsVectorType());
if ( ! result ) if ( ! result )
return 0; return nullptr;
for ( unsigned int i = 0; i < vec->size(); ++i ) for ( unsigned int i = 0; i < vec->size(); ++i )
{ {

View file

@ -94,7 +94,7 @@ public:
// //
// Note that you need to delete[] the resulting string. // Note that you need to delete[] the resulting string.
// //
char* Render(int format = EXPANDED_STRING, int* len = 0) const; char* Render(int format = EXPANDED_STRING, int* len = nullptr) const;
// Similar to the above, but useful for output streams. // Similar to the above, but useful for output streams.
// Also more useful for debugging purposes since no deallocation // Also more useful for debugging purposes since no deallocation

View file

@ -76,7 +76,7 @@ bool Brofiler::ReadStats()
pair<string, string> location_desc(std::move(location), std::move(desc)); pair<string, string> location_desc(std::move(location), std::move(desc));
uint64_t count; uint64_t count;
atoi_n(cnt.size(), cnt.c_str(), 0, 10, count); atoi_n(cnt.size(), cnt.c_str(), nullptr, 10, count);
usage_map.emplace(std::move(location_desc), count); usage_map.emplace(std::move(location_desc), count);
} }

View file

@ -47,19 +47,19 @@ CompositeHash::CompositeHash(IntrusivePtr<TypeList> composite_type)
// via the singleton later. // via the singleton later.
singleton_tag = (*type->Types())[0]->InternalType(); singleton_tag = (*type->Types())[0]->InternalType();
size = 0; size = 0;
key = 0; key = nullptr;
} }
else else
{ {
size = ComputeKeySize(0, true, true); size = ComputeKeySize(nullptr, true, true);
if ( size > 0 ) if ( size > 0 )
// Fixed size. Make sure what we get is fully aligned. // Fixed size. Make sure what we get is fully aligned.
key = reinterpret_cast<char*> key = reinterpret_cast<char*>
(new double[size/sizeof(double) + 1]); (new double[size/sizeof(double) + 1]);
else else
key = 0; key = nullptr;
} }
} }
@ -72,7 +72,7 @@ CompositeHash::~CompositeHash()
char* CompositeHash::SingleValHash(bool type_check, char* kp0, char* CompositeHash::SingleValHash(bool type_check, char* kp0,
BroType* bt, Val* v, bool optional) const BroType* bt, Val* v, bool optional) const
{ {
char* kp1 = 0; char* kp1 = nullptr;
InternalTypeTag t = bt->InternalType(); InternalTypeTag t = bt->InternalType();
if ( optional ) if ( optional )
@ -90,7 +90,7 @@ char* CompositeHash::SingleValHash(bool type_check, char* kp0,
{ {
InternalTypeTag vt = v->Type()->InternalType(); InternalTypeTag vt = v->Type()->InternalType();
if ( vt != t ) if ( vt != t )
return 0; return nullptr;
} }
switch ( t ) { switch ( t ) {
@ -186,12 +186,12 @@ char* CompositeHash::SingleValHash(bool type_check, char* kp0,
bool optional = (a && a->FindAttr(ATTR_OPTIONAL)); bool optional = (a && a->FindAttr(ATTR_OPTIONAL));
if ( ! (rv_i || optional) ) if ( ! (rv_i || optional) )
return 0; return nullptr;
if ( ! (kp = SingleValHash(type_check, kp, if ( ! (kp = SingleValHash(type_check, kp,
rt->FieldType(i), rt->FieldType(i),
rv_i, optional)) ) rv_i, optional)) )
return 0; return nullptr;
} }
kp1 = kp; kp1 = kp;
@ -242,7 +242,7 @@ char* CompositeHash::SingleValHash(bool type_check, char* kp0,
if ( ! (kp1 = SingleValHash(type_check, kp1, key->Type(), key, if ( ! (kp1 = SingleValHash(type_check, kp1, key->Type(), key,
false)) ) false)) )
return 0; return nullptr;
if ( ! v->Type()->IsSet() ) if ( ! v->Type()->IsSet() )
{ {
@ -250,7 +250,7 @@ char* CompositeHash::SingleValHash(bool type_check, char* kp0,
if ( ! (kp1 = SingleValHash(type_check, kp1, val->Type(), if ( ! (kp1 = SingleValHash(type_check, kp1, val->Type(),
val.get(), false)) ) val.get(), false)) )
return 0; return nullptr;
} }
} }
@ -278,7 +278,7 @@ char* CompositeHash::SingleValHash(bool type_check, char* kp0,
{ {
if ( ! (kp1 = SingleValHash(type_check, kp1, if ( ! (kp1 = SingleValHash(type_check, kp1,
vt->YieldType(), val, false)) ) vt->YieldType(), val, false)) )
return 0; return nullptr;
} }
} }
} }
@ -295,7 +295,7 @@ char* CompositeHash::SingleValHash(bool type_check, char* kp0,
Val* v = lv->Index(i); Val* v = lv->Index(i);
if ( ! (kp1 = SingleValHash(type_check, kp1, v->Type(), v, if ( ! (kp1 = SingleValHash(type_check, kp1, v->Type(), v,
false)) ) false)) )
return 0; return nullptr;
} }
} }
break; break;
@ -303,7 +303,7 @@ char* CompositeHash::SingleValHash(bool type_check, char* kp0,
default: default:
{ {
reporter->InternalError("bad index type in CompositeHash::SingleValHash"); reporter->InternalError("bad index type in CompositeHash::SingleValHash");
return 0; return nullptr;
} }
} }
@ -326,7 +326,7 @@ char* CompositeHash::SingleValHash(bool type_check, char* kp0,
break; break;
case TYPE_INTERNAL_ERROR: case TYPE_INTERNAL_ERROR:
return 0; return nullptr;
} }
return kp1; return kp1;
@ -361,7 +361,7 @@ HashKey* CompositeHash::ComputeHash(const Val* v, bool type_check) const
{ {
int sz = ComputeKeySize(v, type_check, false); int sz = ComputeKeySize(v, type_check, false);
if ( sz == 0 ) if ( sz == 0 )
return 0; return nullptr;
k = reinterpret_cast<char*>(new double[sz/sizeof(double) + 1]); k = reinterpret_cast<char*>(new double[sz/sizeof(double) + 1]);
type_check = false; // no need to type-check again. type_check = false; // no need to type-check again.
@ -370,18 +370,18 @@ HashKey* CompositeHash::ComputeHash(const Val* v, bool type_check) const
const type_list* tl = type->Types(); const type_list* tl = type->Types();
if ( type_check && v->Type()->Tag() != TYPE_LIST ) if ( type_check && v->Type()->Tag() != TYPE_LIST )
return 0; return nullptr;
const val_list* vl = v->AsListVal()->Vals(); const val_list* vl = v->AsListVal()->Vals();
if ( type_check && vl->length() != tl->length() ) if ( type_check && vl->length() != tl->length() )
return 0; return nullptr;
char* kp = k; char* kp = k;
loop_over_list(*tl, i) loop_over_list(*tl, i)
{ {
kp = SingleValHash(type_check, kp, (*tl)[i], (*vl)[i], false); kp = SingleValHash(type_check, kp, (*tl)[i], (*vl)[i], false);
if ( ! kp ) if ( ! kp )
return 0; return nullptr;
} }
return new HashKey((k == key), (void*) k, kp - k); return new HashKey((k == key), (void*) k, kp - k);
@ -393,13 +393,13 @@ HashKey* CompositeHash::ComputeSingletonHash(const Val* v, bool type_check) cons
{ {
const val_list* vl = v->AsListVal()->Vals(); const val_list* vl = v->AsListVal()->Vals();
if ( type_check && vl->length() != 1 ) if ( type_check && vl->length() != 1 )
return 0; return nullptr;
v = (*vl)[0]; v = (*vl)[0];
} }
if ( type_check && v->Type()->InternalType() != singleton_tag ) if ( type_check && v->Type()->InternalType() != singleton_tag )
return 0; return nullptr;
switch ( singleton_tag ) { switch ( singleton_tag ) {
case TYPE_INTERNAL_INT: case TYPE_INTERNAL_INT:
@ -434,17 +434,17 @@ HashKey* CompositeHash::ComputeSingletonHash(const Val* v, bool type_check) cons
} }
reporter->InternalError("bad index type in CompositeHash::ComputeSingletonHash"); reporter->InternalError("bad index type in CompositeHash::ComputeSingletonHash");
return 0; return nullptr;
case TYPE_INTERNAL_STRING: case TYPE_INTERNAL_STRING:
return new HashKey(v->AsString()); return new HashKey(v->AsString());
case TYPE_INTERNAL_ERROR: case TYPE_INTERNAL_ERROR:
return 0; return nullptr;
default: default:
reporter->InternalError("bad internal type in CompositeHash::ComputeSingletonHash"); reporter->InternalError("bad internal type in CompositeHash::ComputeSingletonHash");
return 0; return nullptr;
} }
} }
@ -507,7 +507,7 @@ int CompositeHash::SingleTypeKeySize(BroType* bt, const Val* v,
case TYPE_RECORD: case TYPE_RECORD:
{ {
const RecordVal* rv = v ? v->AsRecordVal() : 0; const RecordVal* rv = v ? v->AsRecordVal() : nullptr;
RecordType* rt = bt->AsRecordType(); RecordType* rt = bt->AsRecordType();
int num_fields = rt->NumFields(); int num_fields = rt->NumFields();
@ -517,7 +517,7 @@ int CompositeHash::SingleTypeKeySize(BroType* bt, const Val* v,
bool optional = (a && a->FindAttr(ATTR_OPTIONAL)); bool optional = (a && a->FindAttr(ATTR_OPTIONAL));
sz = SingleTypeKeySize(rt->FieldType(i), sz = SingleTypeKeySize(rt->FieldType(i),
rv ? rv->Lookup(i) : 0, rv ? rv->Lookup(i) : nullptr,
type_check, sz, optional, type_check, sz, optional,
calc_static_size); calc_static_size);
if ( ! sz ) if ( ! sz )
@ -632,7 +632,7 @@ int CompositeHash::SingleTypeKeySize(BroType* bt, const Val* v,
int CompositeHash::ComputeKeySize(const Val* v, bool type_check, bool calc_static_size) const int CompositeHash::ComputeKeySize(const Val* v, bool type_check, bool calc_static_size) const
{ {
const type_list* tl = type->Types(); const type_list* tl = type->Types();
const val_list* vl = 0; const val_list* vl = nullptr;
if ( v ) if ( v )
{ {
if ( type_check && v->Type()->Tag() != TYPE_LIST ) if ( type_check && v->Type()->Tag() != TYPE_LIST )
@ -646,7 +646,7 @@ int CompositeHash::ComputeKeySize(const Val* v, bool type_check, bool calc_stati
int sz = 0; int sz = 0;
loop_over_list(*tl, i) loop_over_list(*tl, i)
{ {
sz = SingleTypeKeySize((*tl)[i], v ? v->AsListVal()->Index(i) : 0, sz = SingleTypeKeySize((*tl)[i], v ? v->AsListVal()->Index(i) : nullptr,
type_check, sz, false, calc_static_size); type_check, sz, false, calc_static_size);
if ( ! sz ) if ( ! sz )
return 0; return 0;
@ -745,7 +745,7 @@ const char* CompositeHash::RecoverOneVal(const HashKey* k, const char* kp0,
TypeTag tag = t->Tag(); TypeTag tag = t->Tag();
InternalTypeTag it = t->InternalType(); InternalTypeTag it = t->InternalType();
const char* kp1 = 0; const char* kp1 = nullptr;
if ( optional ) if ( optional )
{ {

View file

@ -120,7 +120,7 @@ Connection::Connection(NetSessions* s, const ConnIDKey& k, double t, const ConnI
if ( arg_encap ) if ( arg_encap )
encapsulation = new EncapsulationStack(*arg_encap); encapsulation = new EncapsulationStack(*arg_encap);
else else
encapsulation = 0; encapsulation = nullptr;
} }
Connection::~Connection() Connection::~Connection()
@ -132,7 +132,7 @@ Connection::~Connection()
if ( conn_val ) if ( conn_val )
{ {
conn_val->SetOrigin(0); conn_val->SetOrigin(nullptr);
Unref(conn_val); Unref(conn_val);
} }
@ -148,7 +148,7 @@ void Connection::CheckEncapsulation(const EncapsulationStack* arg_encap)
{ {
if ( *encapsulation != *arg_encap ) if ( *encapsulation != *arg_encap )
{ {
Event(tunnel_changed, 0, arg_encap->GetVectorVal()); Event(tunnel_changed, nullptr, arg_encap->GetVectorVal());
delete encapsulation; delete encapsulation;
encapsulation = new EncapsulationStack(*arg_encap); encapsulation = new EncapsulationStack(*arg_encap);
} }
@ -157,14 +157,14 @@ void Connection::CheckEncapsulation(const EncapsulationStack* arg_encap)
else if ( encapsulation ) else if ( encapsulation )
{ {
EncapsulationStack empty; EncapsulationStack empty;
Event(tunnel_changed, 0, empty.GetVectorVal()); Event(tunnel_changed, nullptr, empty.GetVectorVal());
delete encapsulation; delete encapsulation;
encapsulation = nullptr; encapsulation = nullptr;
} }
else if ( arg_encap ) else if ( arg_encap )
{ {
Event(tunnel_changed, 0, arg_encap->GetVectorVal()); Event(tunnel_changed, nullptr, arg_encap->GetVectorVal());
encapsulation = new EncapsulationStack(*arg_encap); encapsulation = new EncapsulationStack(*arg_encap);
} }
} }
@ -269,7 +269,7 @@ void Connection::HistoryThresholdEvent(EventHandlerPtr e, bool is_orig,
void Connection::DeleteTimer(double /* t */) void Connection::DeleteTimer(double /* t */)
{ {
if ( is_active ) if ( is_active )
Event(connection_timeout, 0); Event(connection_timeout, nullptr);
sessions->Remove(this); sessions->Remove(this);
} }
@ -282,7 +282,7 @@ void Connection::InactivityTimer(double t)
{ {
if ( last_time + inactivity_timeout <= t ) if ( last_time + inactivity_timeout <= t )
{ {
Event(connection_timeout, 0); Event(connection_timeout, nullptr);
sessions->Remove(this); sessions->Remove(this);
++killed_by_inactivity; ++killed_by_inactivity;
} }
@ -402,12 +402,12 @@ RecordVal* Connection::BuildConnVal()
analyzer::Analyzer* Connection::FindAnalyzer(analyzer::ID id) analyzer::Analyzer* Connection::FindAnalyzer(analyzer::ID id)
{ {
return root_analyzer ? root_analyzer->FindChild(id) : 0; return root_analyzer ? root_analyzer->FindChild(id) : nullptr;
} }
analyzer::Analyzer* Connection::FindAnalyzer(const analyzer::Tag& tag) analyzer::Analyzer* Connection::FindAnalyzer(const analyzer::Tag& tag)
{ {
return root_analyzer ? root_analyzer->FindChild(tag) : 0; return root_analyzer ? root_analyzer->FindChild(tag) : nullptr;
} }
analyzer::Analyzer* Connection::FindAnalyzer(const char* name) analyzer::Analyzer* Connection::FindAnalyzer(const char* name)
@ -696,7 +696,7 @@ void Connection::CheckFlowLabel(bool is_orig, uint32_t flow_label)
if ( connection_flow_label_changed && if ( connection_flow_label_changed &&
(is_orig ? saw_first_orig_packet : saw_first_resp_packet) ) (is_orig ? saw_first_orig_packet : saw_first_resp_packet) )
{ {
EnqueueEvent(connection_flow_label_changed, 0, EnqueueEvent(connection_flow_label_changed, nullptr,
IntrusivePtr{AdoptRef{}, BuildConnVal()}, IntrusivePtr{AdoptRef{}, BuildConnVal()},
IntrusivePtr{AdoptRef{}, val_mgr->GetBool(is_orig)}, IntrusivePtr{AdoptRef{}, val_mgr->GetBool(is_orig)},
IntrusivePtr{AdoptRef{}, val_mgr->GetCount(my_flow_label)}, IntrusivePtr{AdoptRef{}, val_mgr->GetCount(my_flow_label)},

View file

@ -180,13 +180,13 @@ public:
// given that event's first argument will be it, and it's second will be // given that event's first argument will be it, and it's second will be
// the connection value. If 'name' is null, then the event's first // the connection value. If 'name' is null, then the event's first
// argument is the connection value. // argument is the connection value.
void Event(EventHandlerPtr f, analyzer::Analyzer* analyzer, const char* name = 0); void Event(EventHandlerPtr f, analyzer::Analyzer* analyzer, const char* name = nullptr);
// If a handler exists for 'f', an event will be generated. In any case, // If a handler exists for 'f', an event will be generated. In any case,
// 'v1' and 'v2' reference counts get decremented. The event's first // 'v1' and 'v2' reference counts get decremented. The event's first
// argument is the connection value, second argument is 'v1', and if 'v2' // argument is the connection value, second argument is 'v1', and if 'v2'
// is given that will be it's third argument. // is given that will be it's third argument.
void Event(EventHandlerPtr f, analyzer::Analyzer* analyzer, Val* v1, Val* v2 = 0); void Event(EventHandlerPtr f, analyzer::Analyzer* analyzer, Val* v1, Val* v2 = nullptr);
// If a handler exists for 'f', an event will be generated. In any case, // If a handler exists for 'f', an event will be generated. In any case,
// reference count for each element in the 'vl' list are decremented. The // reference count for each element in the 'vl' list are decremented. The

View file

@ -17,7 +17,7 @@ DFA_State::DFA_State(int arg_state_num, const EquivClass* ec,
num_sym = ec->NumClasses(); num_sym = ec->NumClasses();
nfa_states = arg_nfa_states; nfa_states = arg_nfa_states;
accept = arg_accept; accept = arg_accept;
mark = 0; mark = nullptr;
SymPartition(ec); SymPartition(ec);
@ -96,7 +96,7 @@ DFA_State* DFA_State::ComputeXtion(int sym, DFA_Machine* machine)
else else
{ {
delete ns; delete ns;
next_d = 0; // Jam next_d = nullptr; // Jam
} }
AddXtion(equiv_sym, next_d); AddXtion(equiv_sym, next_d);
@ -182,7 +182,7 @@ void DFA_State::ClearMarks()
{ {
if ( mark ) if ( mark )
{ {
SetMark(0); SetMark(nullptr);
for ( int i = 0; i < num_sym; ++i ) for ( int i = 0; i < num_sym; ++i )
{ {
@ -395,7 +395,7 @@ DFA_Machine::DFA_Machine(NFA_Machine* n, EquivClass* arg_ec)
} }
else else
{ {
start_state = 0; // Jam start_state = nullptr; // Jam
delete ns; delete ns;
} }
} }
@ -451,7 +451,7 @@ bool DFA_Machine::StateSetToDFA_State(NFA_state_list* state_set,
if ( accept->empty() ) if ( accept->empty() )
{ {
delete accept; delete accept;
accept = 0; accept = nullptr;
} }
DFA_State* ds = new DFA_State(state_count++, ec, state_set, accept); DFA_State* ds = new DFA_State(state_count++, ec, state_set, accept);

View file

@ -194,7 +194,7 @@ DNS_Mapping::DNS_Mapping(const IPAddr& addr, struct hostent* h, uint32_t ttl)
{ {
Init(h); Init(h);
req_addr = addr; req_addr = addr;
req_host = 0; req_host = nullptr;
req_ttl = ttl; req_ttl = ttl;
} }
@ -203,7 +203,7 @@ DNS_Mapping::DNS_Mapping(FILE* f)
Clear(); Clear();
init_failed = true; init_failed = true;
req_host = 0; req_host = nullptr;
req_ttl = 0; req_ttl = 0;
creation_time = 0; creation_time = 0;
@ -255,7 +255,7 @@ DNS_Mapping::DNS_Mapping(FILE* f)
} }
} }
else else
addrs = 0; addrs = nullptr;
init_failed = false; init_failed = false;
} }
@ -302,7 +302,7 @@ IntrusivePtr<TableVal> DNS_Mapping::AddrsSet() {
IntrusivePtr<StringVal> DNS_Mapping::Host() IntrusivePtr<StringVal> DNS_Mapping::Host()
{ {
if ( failed || num_names == 0 || ! names[0] ) if ( failed || num_names == 0 || ! names[0] )
return 0; return nullptr;
if ( ! host_val ) if ( ! host_val )
host_val = make_intrusive<StringVal>(names[0]); host_val = make_intrusive<StringVal>(names[0]);
@ -315,8 +315,8 @@ void DNS_Mapping::Init(struct hostent* h)
no_mapping = false; no_mapping = false;
init_failed = false; init_failed = false;
creation_time = current_time(); creation_time = current_time();
host_val = 0; host_val = nullptr;
addrs_val = 0; addrs_val = nullptr;
if ( ! h ) if ( ! h )
{ {
@ -327,7 +327,7 @@ void DNS_Mapping::Init(struct hostent* h)
map_type = h->h_addrtype; map_type = h->h_addrtype;
num_names = 1; // for now, just use official name num_names = 1; // for now, just use official name
names = new char*[num_names]; names = new char*[num_names];
names[0] = h->h_name ? copy_string(h->h_name) : 0; names[0] = h->h_name ? copy_string(h->h_name) : nullptr;
for ( num_addrs = 0; h->h_addr_list[num_addrs]; ++num_addrs ) for ( num_addrs = 0; h->h_addr_list[num_addrs]; ++num_addrs )
; ;
@ -344,7 +344,7 @@ void DNS_Mapping::Init(struct hostent* h)
IPAddr::Network); IPAddr::Network);
} }
else else
addrs = 0; addrs = nullptr;
failed = false; failed = false;
} }
@ -352,10 +352,10 @@ void DNS_Mapping::Init(struct hostent* h)
void DNS_Mapping::Clear() void DNS_Mapping::Clear()
{ {
num_names = num_addrs = 0; num_names = num_addrs = 0;
names = 0; names = nullptr;
addrs = 0; addrs = nullptr;
host_val = 0; host_val = nullptr;
addrs_val = 0; addrs_val = nullptr;
no_mapping = false; no_mapping = false;
map_type = 0; map_type = 0;
failed = true; failed = true;
@ -363,7 +363,7 @@ void DNS_Mapping::Clear()
void DNS_Mapping::Save(FILE* f) const void DNS_Mapping::Save(FILE* f) const
{ {
fprintf(f, "%.0f %d %s %d %s %d %d %" PRIu32"\n", creation_time, req_host != 0, fprintf(f, "%.0f %d %s %d %s %d %d %" PRIu32"\n", creation_time, req_host != nullptr,
req_host ? req_host : req_addr.AsString().c_str(), req_host ? req_host : req_addr.AsString().c_str(),
failed, (names && names[0]) ? names[0] : "*", failed, (names && names[0]) ? names[0] : "*",
map_type, num_addrs, req_ttl); map_type, num_addrs, req_ttl);
@ -381,11 +381,11 @@ DNS_Mgr::DNS_Mgr(DNS_MgrMode arg_mode)
dns_mapping_valid = dns_mapping_unverified = dns_mapping_new_name = dns_mapping_valid = dns_mapping_unverified = dns_mapping_new_name =
dns_mapping_lost_name = dns_mapping_name_changed = dns_mapping_lost_name = dns_mapping_name_changed =
dns_mapping_altered = 0; dns_mapping_altered = nullptr;
dm_rec = 0; dm_rec = nullptr;
cache_name = dir = 0; cache_name = dir = nullptr;
asyncs_pending = 0; asyncs_pending = 0;
num_requests = 0; num_requests = 0;
@ -540,7 +540,7 @@ IntrusivePtr<TableVal> DNS_Mgr::LookupHost(const char* name)
case DNS_FORCE: case DNS_FORCE:
reporter->FatalError("can't find DNS entry for %s in cache", name); reporter->FatalError("can't find DNS entry for %s in cache", name);
return 0; return nullptr;
case DNS_DEFAULT: case DNS_DEFAULT:
requests.push_back(new DNS_Mgr_Request(name, AF_INET, false)); requests.push_back(new DNS_Mgr_Request(name, AF_INET, false));
@ -550,7 +550,7 @@ IntrusivePtr<TableVal> DNS_Mgr::LookupHost(const char* name)
default: default:
reporter->InternalError("bad mode in DNS_Mgr::LookupHost"); reporter->InternalError("bad mode in DNS_Mgr::LookupHost");
return 0; return nullptr;
} }
} }
@ -585,7 +585,7 @@ IntrusivePtr<Val> DNS_Mgr::LookupAddr(const IPAddr& addr)
case DNS_FORCE: case DNS_FORCE:
reporter->FatalError("can't find DNS entry for %s in cache", reporter->FatalError("can't find DNS entry for %s in cache",
addr.AsString().c_str()); addr.AsString().c_str());
return 0; return nullptr;
case DNS_DEFAULT: case DNS_DEFAULT:
requests.push_back(new DNS_Mgr_Request(addr)); requests.push_back(new DNS_Mgr_Request(addr));
@ -594,7 +594,7 @@ IntrusivePtr<Val> DNS_Mgr::LookupAddr(const IPAddr& addr)
default: default:
reporter->InternalError("bad mode in DNS_Mgr::LookupAddr"); reporter->InternalError("bad mode in DNS_Mgr::LookupAddr");
return 0; return nullptr;
} }
} }
@ -634,7 +634,7 @@ void DNS_Mgr::Resolve()
DNS_Mgr_Request* dr = requests[i]; DNS_Mgr_Request* dr = requests[i];
if ( dr->RequestPending() ) if ( dr->RequestPending() )
{ {
AddResult(dr, 0); AddResult(dr, nullptr);
dr->RequestDone(); dr->RequestDone();
} }
} }
@ -748,7 +748,7 @@ IntrusivePtr<Val> DNS_Mgr::BuildMappingVal(DNS_Mapping* dm)
void DNS_Mgr::AddResult(DNS_Mgr_Request* dr, struct nb_dns_result* r) void DNS_Mgr::AddResult(DNS_Mgr_Request* dr, struct nb_dns_result* r)
{ {
struct hostent* h = (r && r->host_errno == 0) ? r->hostent : 0; struct hostent* h = (r && r->host_errno == 0) ? r->hostent : nullptr;
u_int32_t ttl = (r && r->host_errno == 0) ? r->ttl : 0; u_int32_t ttl = (r && r->host_errno == 0) ? r->ttl : 0;
DNS_Mapping* new_dm; DNS_Mapping* new_dm;
@ -758,7 +758,7 @@ void DNS_Mgr::AddResult(DNS_Mgr_Request* dr, struct nb_dns_result* r)
if ( dr->ReqHost() ) if ( dr->ReqHost() )
{ {
new_dm = new DNS_Mapping(dr->ReqHost(), h, ttl); new_dm = new DNS_Mapping(dr->ReqHost(), h, ttl);
prev_dm = 0; prev_dm = nullptr;
if ( dr->ReqIsTxt() ) if ( dr->ReqIsTxt() )
{ {
@ -784,10 +784,10 @@ void DNS_Mgr::AddResult(DNS_Mgr_Request* dr, struct nb_dns_result* r)
if ( it == host_mappings.end() ) if ( it == host_mappings.end() )
{ {
host_mappings[dr->ReqHost()].first = host_mappings[dr->ReqHost()].first =
new_dm->Type() == AF_INET ? new_dm : 0; new_dm->Type() == AF_INET ? new_dm : nullptr;
host_mappings[dr->ReqHost()].second = host_mappings[dr->ReqHost()].second =
new_dm->Type() == AF_INET ? 0 : new_dm; new_dm->Type() == AF_INET ? nullptr : new_dm;
} }
else else
{ {
@ -980,7 +980,7 @@ const char* DNS_Mgr::LookupAddrInCache(const IPAddr& addr)
AddrMap::iterator it = addr_mappings.find(addr); AddrMap::iterator it = addr_mappings.find(addr);
if ( it == addr_mappings.end() ) if ( it == addr_mappings.end() )
return 0; return nullptr;
DNS_Mapping* d = it->second; DNS_Mapping* d = it->second;
@ -988,7 +988,7 @@ const char* DNS_Mgr::LookupAddrInCache(const IPAddr& addr)
{ {
addr_mappings.erase(it); addr_mappings.erase(it);
delete d; delete d;
return 0; return nullptr;
} }
// The escapes in the following strings are to avoid having it // The escapes in the following strings are to avoid having it
@ -1002,21 +1002,21 @@ IntrusivePtr<TableVal> DNS_Mgr::LookupNameInCache(const string& name)
if ( it == host_mappings.end() ) if ( it == host_mappings.end() )
{ {
it = host_mappings.begin(); it = host_mappings.begin();
return 0; return nullptr;
} }
DNS_Mapping* d4 = it->second.first; DNS_Mapping* d4 = it->second.first;
DNS_Mapping* d6 = it->second.second; DNS_Mapping* d6 = it->second.second;
if ( ! d4 || ! d4->names || ! d6 || ! d6->names ) if ( ! d4 || ! d4->names || ! d6 || ! d6->names )
return 0; return nullptr;
if ( d4->Expired() || d6->Expired() ) if ( d4->Expired() || d6->Expired() )
{ {
host_mappings.erase(it); host_mappings.erase(it);
delete d4; delete d4;
delete d6; delete d6;
return 0; return nullptr;
} }
auto tv4 = d4->AddrsSet(); auto tv4 = d4->AddrsSet();
@ -1029,7 +1029,7 @@ const char* DNS_Mgr::LookupTextInCache(const string& name)
{ {
TextMap::iterator it = text_mappings.find(name); TextMap::iterator it = text_mappings.find(name);
if ( it == text_mappings.end() ) if ( it == text_mappings.end() )
return 0; return nullptr;
DNS_Mapping* d = it->second; DNS_Mapping* d = it->second;
@ -1037,7 +1037,7 @@ const char* DNS_Mgr::LookupTextInCache(const string& name)
{ {
text_mappings.erase(it); text_mappings.erase(it);
delete d; delete d;
return 0; return nullptr;
} }
// The escapes in the following strings are to avoid having it // The escapes in the following strings are to avoid having it
@ -1077,7 +1077,7 @@ void DNS_Mgr::AsyncLookupAddr(const IPAddr& host, LookupCallback* callback)
return; return;
} }
AsyncRequest* req = 0; AsyncRequest* req = nullptr;
// Have we already a request waiting for this host? // Have we already a request waiting for this host?
AsyncRequestAddrMap::iterator i = asyncs_addrs.find(host); AsyncRequestAddrMap::iterator i = asyncs_addrs.find(host);
@ -1115,7 +1115,7 @@ void DNS_Mgr::AsyncLookupName(const string& name, LookupCallback* callback)
return; return;
} }
AsyncRequest* req = 0; AsyncRequest* req = nullptr;
// Have we already a request waiting for this host? // Have we already a request waiting for this host?
AsyncRequestNameMap::iterator i = asyncs_names.find(name); AsyncRequestNameMap::iterator i = asyncs_names.find(name);
@ -1154,7 +1154,7 @@ void DNS_Mgr::AsyncLookupNameText(const string& name, LookupCallback* callback)
return; return;
} }
AsyncRequest* req = 0; AsyncRequest* req = nullptr;
// Have we already a request waiting for this host? // Have we already a request waiting for this host?
AsyncRequestTextMap::iterator i = asyncs_texts.find(name); AsyncRequestTextMap::iterator i = asyncs_texts.find(name);

View file

@ -49,13 +49,13 @@ DbgBreakpoint::DbgBreakpoint()
enabled = temporary = false; enabled = temporary = false;
BPID = -1; BPID = -1;
at_stmt = 0; at_stmt = nullptr;
at_time = -1.0; at_time = -1.0;
repeat_count = hit_count = 0; repeat_count = hit_count = 0;
description[0] = 0; description[0] = 0;
source_filename = 0; source_filename = nullptr;
source_line = 0; source_line = 0;
} }

View file

@ -55,7 +55,7 @@ DebuggerState::DebuggerState()
BreakFromSignal(false); BreakFromSignal(false);
// ### Don't choose this arbitrary size! Extend Frame. // ### Don't choose this arbitrary size! Extend Frame.
dbg_locals = new Frame(1024, /* func = */ 0, /* fn_args = */ 0); dbg_locals = new Frame(1024, /* func = */ nullptr, /* fn_args = */ nullptr);
} }
DebuggerState::~DebuggerState() DebuggerState::~DebuggerState()
@ -107,7 +107,7 @@ FILE* TraceState::SetTraceFile(const char* filename)
else else
{ {
fprintf(stderr, "Unable to open trace file %s\n", filename); fprintf(stderr, "Unable to open trace file %s\n", filename);
trace_file = 0; trace_file = nullptr;
} }
return oldfile; return oldfile;
@ -137,7 +137,7 @@ int TraceState::LogTrace(const char* fmt, ...)
const Stmt* stmt; const Stmt* stmt;
Location loc; Location loc;
loc.filename = 0; loc.filename = nullptr;
if ( g_frame_stack.size() > 0 && g_frame_stack.back() ) if ( g_frame_stack.size() > 0 && g_frame_stack.back() )
{ {
@ -178,7 +178,7 @@ void get_first_statement(Stmt* list, Stmt*& first, Location& loc)
{ {
if ( ! list ) if ( ! list )
{ {
first = 0; first = nullptr;
return; return;
} }
@ -231,7 +231,7 @@ static void parse_function_name(vector<ParseLocationRec>& result,
return; return;
} }
Stmt* body = 0; // the particular body we care about; 0 = all Stmt* body = nullptr; // the particular body we care about; 0 = all
if ( bodies.size() == 1 ) if ( bodies.size() == 1 )
body = bodies[0].stmts.get(); body = bodies[0].stmts.get();
@ -380,7 +380,7 @@ vector<ParseLocationRec> parse_location_string(const string& s)
return result; return result;
} }
StmtLocMapping* hit = 0; StmtLocMapping* hit = nullptr;
for ( const auto entry : *(iter->second) ) for ( const auto entry : *(iter->second) )
{ {
plr.filename = entry->Loc().filename; plr.filename = entry->Loc().filename;
@ -399,7 +399,7 @@ vector<ParseLocationRec> parse_location_string(const string& s)
if ( hit ) if ( hit )
plr.stmt = hit->Statement(); plr.stmt = hit->Statement();
else else
plr.stmt = 0; plr.stmt = nullptr;
} }
return result; return result;
@ -730,7 +730,7 @@ static char* get_prompt(bool reset_counter = false)
string get_context_description(const Stmt* stmt, const Frame* frame) string get_context_description(const Stmt* stmt, const Frame* frame)
{ {
ODesc d; ODesc d;
const BroFunc* func = frame ? frame->GetFunction() : 0; const BroFunc* func = frame ? frame->GetFunction() : nullptr;
if ( func ) if ( func )
func->DescribeDebug(&d, frame->GetFuncArgs()); func->DescribeDebug(&d, frame->GetFuncArgs());
@ -758,7 +758,7 @@ string get_context_description(const Stmt* stmt, const Frame* frame)
int dbg_handle_debug_input() int dbg_handle_debug_input()
{ {
static char* input_line = 0; static char* input_line = nullptr;
int status = 0; int status = 0;
if ( g_debugger_state.BreakFromSignal() ) if ( g_debugger_state.BreakFromSignal() )
@ -820,7 +820,7 @@ int dbg_handle_debug_input()
if ( input_line ) if ( input_line )
{ {
free(input_line); // this was malloc'ed free(input_line); // this was malloc'ed
input_line = 0; input_line = nullptr;
} }
else else
exit(0); exit(0);
@ -934,8 +934,8 @@ bool post_execute_stmt(Stmt* stmt, Frame* f, Val* result, stmt_flow_type* flow)
// Evaluates the given expression in the context of the currently selected // Evaluates the given expression in the context of the currently selected
// frame. Returns the resulting value, or nil if none (or there was an error). // frame. Returns the resulting value, or nil if none (or there was an error).
Expr* g_curr_debug_expr = 0; Expr* g_curr_debug_expr = nullptr;
const char* g_curr_debug_error = 0; const char* g_curr_debug_error = nullptr;
bool in_debug = false; bool in_debug = false;
// ### fix this hardwired access to external variables etc. // ### fix this hardwired access to external variables etc.
@ -993,7 +993,7 @@ IntrusivePtr<Val> dbg_eval_expr(const char* expr)
if ( g_curr_debug_expr ) if ( g_curr_debug_expr )
{ {
delete g_curr_debug_expr; delete g_curr_debug_expr;
g_curr_debug_expr = 0; g_curr_debug_expr = nullptr;
} }
} }
else else
@ -1003,9 +1003,9 @@ IntrusivePtr<Val> dbg_eval_expr(const char* expr)
pop_scope(); pop_scope();
delete g_curr_debug_expr; delete g_curr_debug_expr;
g_curr_debug_expr = 0; g_curr_debug_expr = nullptr;
delete [] g_curr_debug_error; delete [] g_curr_debug_error;
g_curr_debug_error = 0; g_curr_debug_error = nullptr;
in_debug = false; in_debug = false;
return result; return result;

View file

@ -149,7 +149,7 @@ bool post_execute_stmt(Stmt* stmt, Frame* f, Val* result, stmt_flow_type* flow);
// Returns 1 if successful, 0 otherwise. // Returns 1 if successful, 0 otherwise.
// If cmdfile is non-nil, it contains the location of a file of commands // If cmdfile is non-nil, it contains the location of a file of commands
// to be executed as debug commands. // to be executed as debug commands.
int dbg_init_debugger(const char* cmdfile = 0); int dbg_init_debugger(const char* cmdfile = nullptr);
int dbg_shutdown_debugger(); int dbg_shutdown_debugger();
// Returns 1 if successful, 0 otherwise. // Returns 1 if successful, 0 otherwise.

View file

@ -125,7 +125,7 @@ void choose_global_symbols_regex(const string& regex, vector<ID*>& choices,
PQueue<DebugCmdInfo> g_DebugCmdInfos; PQueue<DebugCmdInfo> g_DebugCmdInfos;
DebugCmdInfo::DebugCmdInfo(const DebugCmdInfo& info) DebugCmdInfo::DebugCmdInfo(const DebugCmdInfo& info)
: cmd(info.cmd), helpstring(0) : cmd(info.cmd), helpstring(nullptr)
{ {
num_names = info.num_names; num_names = info.num_names;
names = info.names; names = info.names;
@ -153,7 +153,7 @@ const DebugCmdInfo* get_debug_cmd_info(DebugCmd cmd)
if ( (int) cmd < g_DebugCmdInfos.length() ) if ( (int) cmd < g_DebugCmdInfos.length() )
return g_DebugCmdInfos[(int) cmd]; return g_DebugCmdInfos[(int) cmd];
else else
return 0; return nullptr;
} }
int find_all_matching_cmds(const string& prefix, const char* array_of_matches[]) int find_all_matching_cmds(const string& prefix, const char* array_of_matches[])
@ -165,7 +165,7 @@ int find_all_matching_cmds(const string& prefix, const char* array_of_matches[])
for ( int i = 0; i < num_debug_cmds(); ++i ) for ( int i = 0; i < num_debug_cmds(); ++i )
{ {
array_of_matches[g_DebugCmdInfos[i]->Cmd()] = 0; array_of_matches[g_DebugCmdInfos[i]->Cmd()] = nullptr;
for ( int j = 0; j < g_DebugCmdInfos[i]->NumNames(); ++j ) for ( int j = 0; j < g_DebugCmdInfos[i]->NumNames(); ++j )
{ {
@ -177,7 +177,7 @@ int find_all_matching_cmds(const string& prefix, const char* array_of_matches[])
if ( ! prefix.compare(curr_name) ) if ( ! prefix.compare(curr_name) )
{ {
for ( int k = 0; k < num_debug_cmds(); ++k ) for ( int k = 0; k < num_debug_cmds(); ++k )
array_of_matches[k] = 0; array_of_matches[k] = nullptr;
array_of_matches[g_DebugCmdInfos[i]->Cmd()] = curr_name; array_of_matches[g_DebugCmdInfos[i]->Cmd()] = curr_name;
return 1; return 1;
@ -214,7 +214,7 @@ static int dbg_backtrace_internal(int start, int end)
for ( int i = start; i >= end; --i ) for ( int i = start; i >= end; --i )
{ {
const Frame* f = g_frame_stack[i]; const Frame* f = g_frame_stack[i];
const Stmt* stmt = f ? f->GetNextStmt() : 0; const Stmt* stmt = f ? f->GetNextStmt() : nullptr;
string context = get_context_description(stmt, f); string context = get_context_description(stmt, f);
debug_msg("#%d %s\n", debug_msg("#%d %s\n",

View file

@ -18,7 +18,7 @@ public:
bool resume_execution, const char* const helpstring, bool resume_execution, const char* const helpstring,
bool repeatable); bool repeatable);
DebugCmdInfo() : helpstring(0) {} DebugCmdInfo() : helpstring(nullptr) {}
int Cmd() const { return cmd; } int Cmd() const { return cmd; }
int NumNames() const { return num_names; } int NumNames() const { return num_names; }

View file

@ -26,7 +26,7 @@ DebugLogger::Stream DebugLogger::streams[NUM_DBGS] = {
DebugLogger::DebugLogger() DebugLogger::DebugLogger()
{ {
verbose = false; verbose = false;
file = 0; file = nullptr;
} }
DebugLogger::~DebugLogger() DebugLogger::~DebugLogger()

View file

@ -21,7 +21,7 @@ ODesc::ODesc(desc_type t, BroFile* arg_f)
style = STANDARD_STYLE; style = STANDARD_STYLE;
f = arg_f; f = arg_f;
if ( f == 0 ) if ( f == nullptr )
{ {
size = DEFAULT_SIZE; size = DEFAULT_SIZE;
base = safe_malloc(size); base = safe_malloc(size);
@ -31,7 +31,7 @@ ODesc::ODesc(desc_type t, BroFile* arg_f)
else else
{ {
offset = size = 0; offset = size = 0;
base = 0; base = nullptr;
} }
indent_level = 0; indent_level = 0;

View file

@ -29,7 +29,7 @@ class BroType;
class ODesc { class ODesc {
public: public:
explicit ODesc(desc_type t=DESC_READABLE, BroFile* f=0); explicit ODesc(desc_type t=DESC_READABLE, BroFile* f=nullptr);
~ODesc(); ~ODesc();
@ -131,7 +131,7 @@ public:
byte_vec TakeBytes() byte_vec TakeBytes()
{ {
const void* t = base; const void* t = base;
base = 0; base = nullptr;
size = 0; size = 0;
// Don't clear offset, as we want to still support // Don't clear offset, as we want to still support

View file

@ -81,7 +81,7 @@ TEST_CASE("dict operation")
dict.Remove(key2); dict.Remove(key2);
CHECK(dict.Length() == 0); CHECK(dict.Length() == 0);
uint32_t* lookup2 = dict.Lookup(key2); uint32_t* lookup2 = dict.Lookup(key2);
CHECK(lookup2 == (uint32_t*)0); CHECK(lookup2 == (uint32_t*)nullptr);
delete key2; delete key2;
CHECK(dict.MaxLength() == 1); CHECK(dict.MaxLength() == 1);
@ -132,7 +132,7 @@ TEST_CASE("dict nthentry")
// NthEntry returns null for unordered dicts // NthEntry returns null for unordered dicts
uint32_t* lookup = unordered.NthEntry(0); uint32_t* lookup = unordered.NthEntry(0);
CHECK(lookup == (uint32_t*)0); CHECK(lookup == (uint32_t*)nullptr);
// Ordered dicts are based on order of insertion, nothing about the // Ordered dicts are based on order of insertion, nothing about the
// data itself // data itself
@ -256,7 +256,7 @@ void Dictionary::DeInit()
void* Dictionary::Lookup(const void* key, int key_size, hash_t hash) const void* Dictionary::Lookup(const void* key, int key_size, hash_t hash) const
{ {
if ( ! tbl && ! tbl2 ) if ( ! tbl && ! tbl2 )
return 0; return nullptr;
hash_t h; hash_t h;
PList<DictEntry>* chain; PList<DictEntry>* chain;
@ -280,7 +280,7 @@ void* Dictionary::Lookup(const void* key, int key_size, hash_t hash) const
} }
} }
return 0; return nullptr;
} }
void* Dictionary::Insert(void* key, int key_size, hash_t hash, void* val, void* Dictionary::Insert(void* key, int key_size, hash_t hash, void* val,
@ -314,7 +314,7 @@ void* Dictionary::Remove(const void* key, int key_size, hash_t hash,
bool dont_delete) bool dont_delete)
{ {
if ( ! tbl && ! tbl2 ) if ( ! tbl && ! tbl2 )
return 0; return nullptr;
hash_t h; hash_t h;
PList<DictEntry>* chain; PList<DictEntry>* chain;
@ -334,7 +334,7 @@ void* Dictionary::Remove(const void* key, int key_size, hash_t hash,
} }
if ( ! chain ) if ( ! chain )
return 0; return nullptr;
for ( int i = 0; i < chain->length(); ++i ) for ( int i = 0; i < chain->length(); ++i )
{ {
@ -346,7 +346,7 @@ void* Dictionary::Remove(const void* key, int key_size, hash_t hash,
void* entry_value = DoRemove(entry, h, chain, i); void* entry_value = DoRemove(entry, h, chain, i);
if ( dont_delete ) if ( dont_delete )
entry->key = 0; entry->key = nullptr;
delete entry; delete entry;
--*num_entries_ptr; --*num_entries_ptr;
@ -354,7 +354,7 @@ void* Dictionary::Remove(const void* key, int key_size, hash_t hash,
} }
} }
return 0; return nullptr;
} }
void* Dictionary::DoRemove(DictEntry* entry, hash_t h, void* Dictionary::DoRemove(DictEntry* entry, hash_t h,
@ -395,7 +395,7 @@ void* Dictionary::DoRemove(DictEntry* entry, hash_t h,
void* Dictionary::NthEntry(int n, const void*& key, int& key_len) const void* Dictionary::NthEntry(int n, const void*& key, int& key_len) const
{ {
if ( ! order || n < 0 || n >= Length() ) if ( ! order || n < 0 || n >= Length() )
return 0; return nullptr;
DictEntry* entry = (*order)[n]; DictEntry* entry = (*order)[n];
key = entry->key; key = entry->key;
@ -419,8 +419,8 @@ void* Dictionary::NextEntry(HashKey*& h, IterCookie*& cookie, int return_hash) c
{ {
const_cast<PList<IterCookie>*>(&cookies)->remove(cookie); const_cast<PList<IterCookie>*>(&cookies)->remove(cookie);
delete cookie; delete cookie;
cookie = 0; cookie = nullptr;
return 0; return nullptr;
} }
// If there are any inserted entries, return them first. // If there are any inserted entries, return them first.
@ -486,8 +486,8 @@ void* Dictionary::NextEntry(HashKey*& h, IterCookie*& cookie, int return_hash) c
// a better way? // a better way?
const_cast<PList<IterCookie>*>(&cookies)->remove(cookie); const_cast<PList<IterCookie>*>(&cookies)->remove(cookie);
delete cookie; delete cookie;
cookie = 0; cookie = nullptr;
return 0; return nullptr;
} }
entry = (*ttbl[b])[0]; entry = (*ttbl[b])[0];
@ -604,7 +604,7 @@ void* Dictionary::Insert(DictEntry* new_entry, bool copy_key)
c->inserted.push_back(new_entry); c->inserted.push_back(new_entry);
} }
return 0; return nullptr;
} }
int Dictionary::NextPrime(int n) const int Dictionary::NextPrime(int n) const
@ -665,7 +665,7 @@ void Dictionary::MoveChains()
if ( ! chain ) if ( ! chain )
continue; continue;
tbl[tbl_next_ind - 1] = 0; tbl[tbl_next_ind - 1] = nullptr;
for ( int j = 0; j < chain->length(); ++j ) for ( int j = 0; j < chain->length(); ++j )
{ {

View file

@ -70,7 +70,7 @@ public:
} }
// True if the dictionary is ordered, false otherwise. // True if the dictionary is ordered, false otherwise.
bool IsOrdered() const { return order != 0; } bool IsOrdered() const { return order != nullptr; }
// If the dictionary is ordered then returns the n'th entry's value; // If the dictionary is ordered then returns the n'th entry's value;
// the second method also returns the key. The first entry inserted // the second method also returns the key. The first entry inserted

View file

@ -12,7 +12,7 @@ EquivClass::EquivClass(int arg_size)
bck = new int[size]; bck = new int[size];
equiv_class = new int[size]; equiv_class = new int[size];
rep = new int[size]; rep = new int[size];
ccl_flags = 0; ccl_flags = nullptr;
num_ecs = 0; num_ecs = 0;
ec_nil = no_class = no_rep = size + 1; ec_nil = no_class = no_rep = size + 1;

View file

@ -74,10 +74,10 @@ void Event::Dispatch(bool no_remote)
EventMgr::EventMgr() EventMgr::EventMgr()
{ {
head = tail = 0; head = tail = nullptr;
current_src = SOURCE_LOCAL; current_src = SOURCE_LOCAL;
current_aid = 0; current_aid = 0;
src_val = 0; src_val = nullptr;
draining = false; draining = false;
} }
@ -176,8 +176,8 @@ void EventMgr::Drain()
for ( int round = 0; head && round < 2; round++ ) for ( int round = 0; head && round < 2; round++ )
{ {
Event* current = head; Event* current = head;
head = 0; head = nullptr;
tail = 0; tail = nullptr;
while ( current ) while ( current )
{ {

View file

@ -64,7 +64,7 @@ public:
[[deprecated("Remove in v4.1. Use Enqueue() instead.")]] [[deprecated("Remove in v4.1. Use Enqueue() instead.")]]
void QueueEventFast(const EventHandlerPtr &h, val_list vl, void QueueEventFast(const EventHandlerPtr &h, val_list vl,
SourceID src = SOURCE_LOCAL, analyzer::ID aid = 0, SourceID src = SOURCE_LOCAL, analyzer::ID aid = 0,
TimerMgr* mgr = 0, BroObj* obj = 0); TimerMgr* mgr = nullptr, BroObj* obj = nullptr);
// Queues an event if there's an event handler (or remote consumer). This // Queues an event if there's an event handler (or remote consumer). This
// function always takes ownership of decrementing the reference count of // function always takes ownership of decrementing the reference count of
@ -75,7 +75,7 @@ public:
[[deprecated("Remove in v4.1. Use Enqueue() instead.")]] [[deprecated("Remove in v4.1. Use Enqueue() instead.")]]
void QueueEvent(const EventHandlerPtr &h, val_list vl, void QueueEvent(const EventHandlerPtr &h, val_list vl,
SourceID src = SOURCE_LOCAL, analyzer::ID aid = 0, SourceID src = SOURCE_LOCAL, analyzer::ID aid = 0,
TimerMgr* mgr = 0, BroObj* obj = 0); TimerMgr* mgr = nullptr, BroObj* obj = nullptr);
// Same as QueueEvent, except taking the event's argument list via a // Same as QueueEvent, except taking the event's argument list via a
// pointer instead of by value. This function takes ownership of the // pointer instead of by value. This function takes ownership of the
@ -84,7 +84,7 @@ public:
[[deprecated("Remove in v4.1. Use Enqueue() instead.")]] [[deprecated("Remove in v4.1. Use Enqueue() instead.")]]
void QueueEvent(const EventHandlerPtr &h, val_list* vl, void QueueEvent(const EventHandlerPtr &h, val_list* vl,
SourceID src = SOURCE_LOCAL, analyzer::ID aid = 0, SourceID src = SOURCE_LOCAL, analyzer::ID aid = 0,
TimerMgr* mgr = 0, BroObj* obj = 0); TimerMgr* mgr = nullptr, BroObj* obj = nullptr);
/** /**
* Adds an event to the queue. If no handler is found for the event * Adds an event to the queue. If no handler is found for the event
@ -117,7 +117,7 @@ public:
void Drain(); void Drain();
bool IsDraining() const { return draining; } bool IsDraining() const { return draining; }
bool HasEvents() const { return head != 0; } bool HasEvents() const { return head != nullptr; }
// Returns the source ID of last raised event. // Returns the source ID of last raised event.
SourceID CurrentSource() const { return current_src; } SourceID CurrentSource() const { return current_src; }

View file

@ -13,8 +13,8 @@ EventHandler::EventHandler(const char* arg_name)
{ {
name = copy_string(arg_name); name = copy_string(arg_name);
used = false; used = false;
local = 0; local = nullptr;
type = 0; type = nullptr;
error_handler = false; error_handler = false;
enabled = true; enabled = true;
generate_always = false; generate_always = false;
@ -42,10 +42,10 @@ FuncType* EventHandler::FType(bool check_export)
check_export); check_export);
if ( ! id ) if ( ! id )
return 0; return nullptr;
if ( id->Type()->Tag() != TYPE_FUNC ) if ( id->Type()->Tag() != TYPE_FUNC )
return 0; return nullptr;
type = id->Type()->AsFuncType(); type = id->Type()->AsFuncType();
return type; return type;

View file

@ -69,7 +69,7 @@ private:
// Encapsulates a ptr to an event handler to overload the boolean operator. // Encapsulates a ptr to an event handler to overload the boolean operator.
class EventHandlerPtr { class EventHandlerPtr {
public: public:
EventHandlerPtr(EventHandler* p = 0) { handler = p; } EventHandlerPtr(EventHandler* p = nullptr) { handler = p; }
EventHandlerPtr(const EventHandlerPtr& h) { handler = h.handler; } EventHandlerPtr(const EventHandlerPtr& h) { handler = h.handler; }
const EventHandlerPtr& operator=(EventHandler* p) const EventHandlerPtr& operator=(EventHandler* p)

View file

@ -54,7 +54,7 @@ const char* expr_name(BroExprTag t)
return expr_names[int(t)]; return expr_names[int(t)];
} }
Expr::Expr(BroExprTag arg_tag) : tag(arg_tag), type(0), paren(false) Expr::Expr(BroExprTag arg_tag) : tag(arg_tag), type(nullptr), paren(false)
{ {
SetLocationInfo(&start_location, &end_location); SetLocationInfo(&start_location, &end_location);
} }
@ -1623,7 +1623,7 @@ IntrusivePtr<Val> BoolExpr::Eval(Frame* f) const
result->Assign(i, val_mgr->GetBool(local_result)); result->Assign(i, val_mgr->GetBool(local_result));
} }
else else
result->Assign(i, 0); result->Assign(i, nullptr);
} }
return result; return result;
@ -1952,7 +1952,7 @@ IntrusivePtr<Val> CondExpr::Eval(Frame* f) const
result->Assign(i, v ? v->Ref() : nullptr); result->Assign(i, v ? v->Ref() : nullptr);
} }
else else
result->Assign(i, 0); result->Assign(i, nullptr);
} }
return result; return result;
@ -2019,7 +2019,7 @@ AssignExpr::AssignExpr(IntrusivePtr<Expr> arg_op1, IntrusivePtr<Expr> arg_op2,
std::move(arg_op1) : arg_op1->MakeLvalue(), std::move(arg_op1) : arg_op1->MakeLvalue(),
std::move(arg_op2)) std::move(arg_op2))
{ {
val = 0; val = nullptr;
is_init = arg_is_init; is_init = arg_is_init;
if ( IsError() ) if ( IsError() )
@ -2079,7 +2079,7 @@ bool AssignExpr::TypeCheck(attr_list* attrs)
if ( bt1 == TYPE_TABLE && op2->Tag() == EXPR_LIST ) if ( bt1 == TYPE_TABLE && op2->Tag() == EXPR_LIST )
{ {
attr_list* attr_copy = 0; attr_list* attr_copy = nullptr;
if ( attrs ) if ( attrs )
{ {
@ -2178,7 +2178,7 @@ bool AssignExpr::TypeCheck(attr_list* attrs)
return false; return false;
} }
attr_list* attr_copy = 0; attr_list* attr_copy = nullptr;
if ( sce->Attrs() ) if ( sce->Attrs() )
{ {
@ -2293,7 +2293,7 @@ void AssignExpr::EvalIntoAggregate(const BroType* t, Val* aggr, Frame* f) const
if ( IsError() ) if ( IsError() )
return; return;
TypeDecl td(0, 0); TypeDecl td(nullptr, nullptr);
if ( IsRecordElement(&td) ) if ( IsRecordElement(&td) )
{ {
@ -2348,7 +2348,7 @@ IntrusivePtr<Val> AssignExpr::InitVal(const BroType* t, IntrusivePtr<Val> aggr)
if ( IsError() ) if ( IsError() )
return nullptr; return nullptr;
TypeDecl td(0, 0); TypeDecl td(nullptr, nullptr);
if ( IsRecordElement(&td) ) if ( IsRecordElement(&td) )
{ {
@ -2690,7 +2690,7 @@ IntrusivePtr<Val> IndexExpr::Fold(Val* v1, Val* v2) const
const ListVal* lv = v2->AsListVal(); const ListVal* lv = v2->AsListVal();
const BroString* s = v1->AsString(); const BroString* s = v1->AsString();
int len = s->Len(); int len = s->Len();
BroString* substring = 0; BroString* substring = nullptr;
if ( lv->Length() == 1 ) if ( lv->Length() == 1 )
{ {
@ -2709,7 +2709,7 @@ IntrusivePtr<Val> IndexExpr::Fold(Val* v1, Val* v2) const
bro_int_t substring_len = last - first; bro_int_t substring_len = last - first;
if ( substring_len < 0 ) if ( substring_len < 0 )
substring = 0; substring = nullptr;
else else
substring = s->GetSubstring(first, substring_len); substring = s->GetSubstring(first, substring_len);
} }
@ -2851,7 +2851,7 @@ TraversalCode IndexExpr::Traverse(TraversalCallback* cb) const
FieldExpr::FieldExpr(IntrusivePtr<Expr> arg_op, const char* arg_field_name) FieldExpr::FieldExpr(IntrusivePtr<Expr> arg_op, const char* arg_field_name)
: UnaryExpr(EXPR_FIELD, std::move(arg_op)), : UnaryExpr(EXPR_FIELD, std::move(arg_op)),
field_name(copy_string(arg_field_name)), td(0), field(0) field_name(copy_string(arg_field_name)), td(nullptr), field(0)
{ {
if ( IsError() ) if ( IsError() )
return; return;
@ -2905,7 +2905,7 @@ void FieldExpr::Assign(Frame* f, IntrusivePtr<Val> v)
void FieldExpr::Delete(Frame* f) void FieldExpr::Delete(Frame* f)
{ {
Assign(f, 0); Assign(f, nullptr);
} }
IntrusivePtr<Val> FieldExpr::Fold(Val* v) const IntrusivePtr<Val> FieldExpr::Fold(Val* v) const
@ -2914,7 +2914,7 @@ IntrusivePtr<Val> FieldExpr::Fold(Val* v) const
return {NewRef{}, result}; return {NewRef{}, result};
// Check for &default. // Check for &default.
const Attr* def_attr = td ? td->FindAttr(ATTR_DEFAULT) : 0; const Attr* def_attr = td ? td->FindAttr(ATTR_DEFAULT) : nullptr;
if ( def_attr ) if ( def_attr )
return def_attr->AttrExpr()->Eval(nullptr); return def_attr->AttrExpr()->Eval(nullptr);
@ -3101,7 +3101,7 @@ TableConstructorExpr::TableConstructorExpr(IntrusivePtr<ListExpr> constructor_li
} }
} }
attrs = arg_attrs ? new Attributes(arg_attrs, type, false, false) : 0; attrs = arg_attrs ? new Attributes(arg_attrs, type, false, false) : nullptr;
type_list* indices = type->AsTableType()->Indices()->Types(); type_list* indices = type->AsTableType()->Indices()->Types();
const expr_list& cle = op->AsListExpr()->Exprs(); const expr_list& cle = op->AsListExpr()->Exprs();
@ -3173,7 +3173,7 @@ IntrusivePtr<Val> TableConstructorExpr::InitVal(const BroType* t, IntrusivePtr<V
const expr_list& exprs = op->AsListExpr()->Exprs(); const expr_list& exprs = op->AsListExpr()->Exprs();
for ( const auto& expr : exprs ) for ( const auto& expr : exprs )
expr->EvalIntoAggregate(t, tval.get(), 0); expr->EvalIntoAggregate(t, tval.get(), nullptr);
return tval; return tval;
} }
@ -3219,7 +3219,7 @@ SetConstructorExpr::SetConstructorExpr(IntrusivePtr<ListExpr> constructor_list,
else if ( type->Tag() != TYPE_TABLE || ! type->AsTableType()->IsSet() ) else if ( type->Tag() != TYPE_TABLE || ! type->AsTableType()->IsSet() )
SetError("values in set(...) constructor do not specify a set"); SetError("values in set(...) constructor do not specify a set");
attrs = arg_attrs ? new Attributes(arg_attrs, type, false, false) : 0; attrs = arg_attrs ? new Attributes(arg_attrs, type, false, false) : nullptr;
type_list* indices = type->AsTableType()->Indices()->Types(); type_list* indices = type->AsTableType()->Indices()->Types();
expr_list& cle = op->AsListExpr()->Exprs(); expr_list& cle = op->AsListExpr()->Exprs();
@ -3265,7 +3265,7 @@ IntrusivePtr<Val> SetConstructorExpr::Eval(Frame* f) const
for ( const auto& expr : exprs ) for ( const auto& expr : exprs )
{ {
auto element = expr->Eval(f); auto element = expr->Eval(f);
aggr->Assign(element.get(), 0); aggr->Assign(element.get(), nullptr);
} }
return aggr; return aggr;
@ -3287,7 +3287,7 @@ IntrusivePtr<Val> SetConstructorExpr::InitVal(const BroType* t, IntrusivePtr<Val
{ {
auto element = check_and_promote(e->Eval(nullptr), index_type, true); auto element = check_and_promote(e->Eval(nullptr), index_type, true);
if ( ! element || ! tval->Assign(element.get(), 0) ) if ( ! element || ! tval->Assign(element.get(), nullptr) )
{ {
Error(fmt("initialization type mismatch in set"), e); Error(fmt("initialization type mismatch in set"), e);
return nullptr; return nullptr;
@ -3521,7 +3521,7 @@ IntrusivePtr<Val> ArithCoerceExpr::Fold(Val* v) const
if ( Val* elt = vv->Lookup(i) ) if ( Val* elt = vv->Lookup(i) )
result->Assign(i, FoldSingleVal(elt, t)); result->Assign(i, FoldSingleVal(elt, t));
else else
result->Assign(i, 0); result->Assign(i, nullptr);
} }
return result; return result;
@ -4191,7 +4191,7 @@ IntrusivePtr<Val> CallExpr::Eval(Frame* f) const
if ( func_val && v ) if ( func_val && v )
{ {
const ::Func* funcv = func_val->AsFunc(); const ::Func* funcv = func_val->AsFunc();
const CallExpr* current_call = f ? f->GetCall() : 0; const CallExpr* current_call = f ? f->GetCall() : nullptr;
if ( f ) if ( f )
f->SetCall(this); f->SetCall(this);
@ -4491,12 +4491,12 @@ IntrusivePtr<BroType> ListExpr::InitType() const
return nullptr; return nullptr;
} }
if ( exprs[0]->IsRecordElement(0) ) if ( exprs[0]->IsRecordElement(nullptr) )
{ {
type_decl_list* types = new type_decl_list(exprs.length()); type_decl_list* types = new type_decl_list(exprs.length());
for ( const auto& expr : exprs ) for ( const auto& expr : exprs )
{ {
TypeDecl* td = new TypeDecl(0, 0); TypeDecl* td = new TypeDecl(nullptr, nullptr);
if ( ! expr->IsRecordElement(td) ) if ( ! expr->IsRecordElement(td) )
{ {
expr->Error("record element expected"); expr->Error("record element expected");
@ -5063,7 +5063,7 @@ bool check_and_promote_args(ListExpr* const args, RecordType* types)
for ( int i = ntypes - 1; i >= el.length(); --i ) for ( int i = ntypes - 1; i >= el.length(); --i )
{ {
TypeDecl* td = types->FieldDecl(i); TypeDecl* td = types->FieldDecl(i);
Attr* def_attr = td->attrs ? td->attrs->FindAttr(ATTR_DEFAULT) : 0; Attr* def_attr = td->attrs ? td->attrs->FindAttr(ATTR_DEFAULT) : nullptr;
if ( ! def_attr ) if ( ! def_attr )
{ {

View file

@ -523,7 +523,7 @@ public:
bool IsPure() const override; bool IsPure() const override;
protected: protected:
bool TypeCheck(attr_list* attrs = 0); bool TypeCheck(attr_list* attrs = nullptr);
bool TypeCheckArithmetics(TypeTag bt1, TypeTag bt2); bool TypeCheckArithmetics(TypeTag bt1, TypeTag bt2);
bool is_init; bool is_init;

View file

@ -56,9 +56,9 @@ BroFile::BroFile(FILE* arg_f)
{ {
Init(); Init();
f = arg_f; f = arg_f;
name = access = 0; name = access = nullptr;
t = base_type(TYPE_STRING); t = base_type(TYPE_STRING);
is_open = (f != 0); is_open = (f != nullptr);
} }
BroFile::BroFile(FILE* arg_f, const char* arg_name, const char* arg_access) BroFile::BroFile(FILE* arg_f, const char* arg_name, const char* arg_access)
@ -68,13 +68,13 @@ BroFile::BroFile(FILE* arg_f, const char* arg_name, const char* arg_access)
name = copy_string(arg_name); name = copy_string(arg_name);
access = copy_string(arg_access); access = copy_string(arg_access);
t = base_type(TYPE_STRING); t = base_type(TYPE_STRING);
is_open = (f != 0); is_open = (f != nullptr);
} }
BroFile::BroFile(const char* arg_name, const char* arg_access) BroFile::BroFile(const char* arg_name, const char* arg_access)
{ {
Init(); Init();
f = 0; f = nullptr;
name = copy_string(arg_name); name = copy_string(arg_name);
access = copy_string(arg_access); access = copy_string(arg_access);
t = base_type(TYPE_STRING); t = base_type(TYPE_STRING);
@ -110,7 +110,7 @@ const char* BroFile::Name() const
if ( f == stderr ) if ( f == stderr )
return "/dev/stderr"; return "/dev/stderr";
return 0; return nullptr;
} }
bool BroFile::Open(FILE* file, const char* mode) bool BroFile::Open(FILE* file, const char* mode)
@ -168,7 +168,7 @@ void BroFile::Init()
{ {
open_time = 0; open_time = 0;
is_open = false; is_open = false;
attrs = 0; attrs = nullptr;
buffered = true; buffered = true;
raw_output = false; raw_output = false;
@ -185,7 +185,7 @@ FILE* BroFile::File()
FILE* BroFile::Seek(long new_position) FILE* BroFile::Seek(long new_position)
{ {
if ( ! File() ) if ( ! File() )
return 0; return nullptr;
if ( fseek(f, new_position, SEEK_SET) < 0 ) if ( fseek(f, new_position, SEEK_SET) < 0 )
reporter->Error("seek failed"); reporter->Error("seek failed");
@ -271,11 +271,11 @@ void BroFile::SetAttrs(Attributes* arg_attrs)
RecordVal* BroFile::Rotate() RecordVal* BroFile::Rotate()
{ {
if ( ! is_open ) if ( ! is_open )
return 0; return nullptr;
// Do not rotate stdin/stdout/stderr. // Do not rotate stdin/stdout/stderr.
if ( f == stdin || f == stdout || f == stderr ) if ( f == stdin || f == stdout || f == stderr )
return 0; return nullptr;
RecordVal* info = new RecordVal(rotate_info); RecordVal* info = new RecordVal(rotate_info);
FILE* newf = rotate_file(name, info); FILE* newf = rotate_file(name, info);
@ -283,7 +283,7 @@ RecordVal* BroFile::Rotate()
if ( ! newf ) if ( ! newf )
{ {
Unref(info); Unref(info);
return 0; return nullptr;
} }
info->Assign(2, make_intrusive<Val>(open_time, TYPE_TIME)); info->Assign(2, make_intrusive<Val>(open_time, TYPE_TIME));
@ -291,7 +291,7 @@ RecordVal* BroFile::Rotate()
Unlink(); Unlink();
fclose(f); fclose(f);
f = 0; f = nullptr;
Open(newf); Open(newf);
return info; return info;

View file

@ -80,7 +80,7 @@ protected:
* If file is not given and mode is, the filename will be opened with that * If file is not given and mode is, the filename will be opened with that
* access mode. * access mode.
*/ */
bool Open(FILE* f = nullptr, const char* mode = 0); bool Open(FILE* f = nullptr, const char* mode = nullptr);
void Unlink(); void Unlink();

View file

@ -49,7 +49,7 @@ FragReassembler::FragReassembler(NetSessions* arg_s,
memcpy(proto_hdr, ip->IP6_Hdr(), proto_hdr_len); memcpy(proto_hdr, ip->IP6_Hdr(), proto_hdr_len);
} }
reassembled_pkt = 0; reassembled_pkt = nullptr;
frag_size = 0; // flag meaning "not known" frag_size = 0; // flag meaning "not known"
next_proto = ip->NextProto(); next_proto = ip->NextProto();
@ -59,7 +59,7 @@ FragReassembler::FragReassembler(NetSessions* arg_s,
timer_mgr->Add(expire_timer); timer_mgr->Add(expire_timer);
} }
else else
expire_timer = 0; expire_timer = nullptr;
AddFragment(t, ip, pkt); AddFragment(t, ip, pkt);
} }
@ -285,7 +285,7 @@ void FragReassembler::BlockInserted(DataBlockMap::const_iterator /* it */)
} }
delete reassembled_pkt; delete reassembled_pkt;
reassembled_pkt = 0; reassembled_pkt = nullptr;
unsigned int version = ((const struct ip*)pkt_start)->ip_v; unsigned int version = ((const struct ip*)pkt_start)->ip_v;
@ -318,7 +318,7 @@ void FragReassembler::Expire(double t)
{ {
block_list.Clear(); block_list.Clear();
expire_timer->ClearReassembler(); expire_timer->ClearReassembler();
expire_timer = 0; // timer manager will delete it expire_timer = nullptr; // timer manager will delete it
sessions->Remove(this); sessions->Remove(this);
} }
@ -329,6 +329,6 @@ void FragReassembler::DeleteTimer()
{ {
expire_timer->ClearReassembler(); expire_timer->ClearReassembler();
timer_mgr->Cancel(expire_timer); timer_mgr->Cancel(expire_timer);
expire_timer = 0; // timer manager will delete it expire_timer = nullptr; // timer manager will delete it
} }
} }

View file

@ -32,7 +32,7 @@ public:
void Expire(double t); void Expire(double t);
void DeleteTimer(); void DeleteTimer();
void ClearTimer() { expire_timer = 0; } void ClearTimer() { expire_timer = nullptr; }
const IP_Hdr* ReassembledPkt() { return reassembled_pkt; } const IP_Hdr* ReassembledPkt() { return reassembled_pkt; }
const FragReassemblerKey& Key() const { return key; } const FragReassemblerKey& Key() const { return key; }
@ -63,7 +63,7 @@ public:
void Dispatch(double t, bool is_expire) override; void Dispatch(double t, bool is_expire) override;
// Break the association between this timer and its creator. // Break the association between this timer and its creator.
void ClearReassembler() { f = 0; } void ClearReassembler() { f = nullptr; }
protected: protected:
FragReassembler* f; FragReassembler* f;

View file

@ -143,7 +143,7 @@ void Frame::Reset(int startIdx)
for ( int i = startIdx; i < size; ++i ) for ( int i = startIdx; i < size; ++i )
{ {
UnrefElement(i); UnrefElement(i);
frame[i] = 0; frame[i] = nullptr;
} }
} }
@ -166,7 +166,7 @@ void Frame::Describe(ODesc* d) const
for ( int i = 0; i < size; ++i ) for ( int i = 0; i < size; ++i )
{ {
d->Add(frame[i] != 0); d->Add(frame[i] != nullptr);
d->SP(); d->SP();
} }
} }

View file

@ -217,7 +217,7 @@ public:
trigger::Trigger* GetTrigger() const { return trigger.get(); } trigger::Trigger* GetTrigger() const { return trigger.get(); }
void SetCall(const CallExpr* arg_call) { call = arg_call; } void SetCall(const CallExpr* arg_call) { call = arg_call; }
void ClearCall() { call = 0; } void ClearCall() { call = nullptr; }
const CallExpr* GetCall() const { return call; } const CallExpr* GetCall() const { return call; }
void SetDelayed() { delayed = true; } void SetDelayed() { delayed = true; }

View file

@ -97,7 +97,7 @@ public:
uint32_t GetUniqueFuncID() const { return unique_id; } uint32_t GetUniqueFuncID() const { return unique_id; }
static Func* GetFuncPtrByID(uint32_t id) static Func* GetFuncPtrByID(uint32_t id)
{ return id >= unique_ids.size() ? 0 : unique_ids[id]; } { return id >= unique_ids.size() ? nullptr : unique_ids[id]; }
protected: protected:
Func(); Func();
@ -205,7 +205,7 @@ public:
void Describe(ODesc* d) const override; void Describe(ODesc* d) const override;
protected: protected:
BuiltinFunc() { func = 0; is_pure = 0; } BuiltinFunc() { func = nullptr; is_pure = 0; }
built_in_func func; built_in_func func;
bool is_pure; bool is_pure;

View file

@ -25,7 +25,7 @@ ID::ID(const char* arg_name, IDScope arg_scope, bool arg_is_export)
scope = arg_scope; scope = arg_scope;
is_export = arg_is_export; is_export = arg_is_export;
is_option = false; is_option = false;
val = 0; val = nullptr;
is_const = false; is_const = false;
is_enum_const = false; is_enum_const = false;
is_type = false; is_type = false;
@ -60,7 +60,7 @@ void ID::ClearVal()
if ( ! weak_ref ) if ( ! weak_ref )
Unref(val); Unref(val);
val = 0; val = nullptr;
} }
void ID::SetVal(IntrusivePtr<Val> v, bool arg_weak_ref) void ID::SetVal(IntrusivePtr<Val> v, bool arg_weak_ref)
@ -147,12 +147,12 @@ void ID::SetVal(IntrusivePtr<Expr> ev, init_class c)
bool ID::IsRedefinable() const bool ID::IsRedefinable() const
{ {
return FindAttr(ATTR_REDEF) != 0; return FindAttr(ATTR_REDEF) != nullptr;
} }
void ID::SetAttrs(IntrusivePtr<Attributes> a) void ID::SetAttrs(IntrusivePtr<Attributes> a)
{ {
attrs = 0; attrs = nullptr;
AddAttrs(std::move(a)); AddAttrs(std::move(a));
} }
@ -197,12 +197,12 @@ void ID::UpdateValAttrs()
Attr* ID::FindAttr(attr_tag t) const Attr* ID::FindAttr(attr_tag t) const
{ {
return attrs ? attrs->FindAttr(t) : 0; return attrs ? attrs->FindAttr(t) : nullptr;
} }
bool ID::IsDeprecated() const bool ID::IsDeprecated() const
{ {
return FindAttr(ATTR_DEPRECATED) != 0; return FindAttr(ATTR_DEPRECATED) != nullptr;
} }
void ID::MakeDeprecated(IntrusivePtr<Expr> deprecation) void ID::MakeDeprecated(IntrusivePtr<Expr> deprecation)

View file

@ -41,8 +41,8 @@ public:
const BroType* Type() const { return type.get(); } const BroType* Type() const { return type.get(); }
void MakeType() { is_type = true; } void MakeType() { is_type = true; }
BroType* AsType() { return is_type ? Type() : 0; } BroType* AsType() { return is_type ? Type() : nullptr; }
const BroType* AsType() const { return is_type ? Type() : 0; } const BroType* AsType() const { return is_type ? Type() : nullptr; }
// If weak_ref is false, the Val is assumed to be already ref'ed // If weak_ref is false, the Val is assumed to be already ref'ed
// and will be deref'ed when the ID is deleted. // and will be deref'ed when the ID is deleted.
@ -57,7 +57,7 @@ public:
void SetVal(IntrusivePtr<Val> v, init_class c); void SetVal(IntrusivePtr<Val> v, init_class c);
void SetVal(IntrusivePtr<Expr> ev, init_class c); void SetVal(IntrusivePtr<Expr> ev, init_class c);
bool HasVal() const { return val != 0; } bool HasVal() const { return val != nullptr; }
Val* ID_Val() { return val; } Val* ID_Val() { return val; }
const Val* ID_Val() const { return val; } const Val* ID_Val() const { return val; }
void ClearVal(); void ClearVal();
@ -90,7 +90,7 @@ public:
std::string GetDeprecationWarning() const; std::string GetDeprecationWarning() const;
void Error(const char* msg, const BroObj* o2 = 0); void Error(const char* msg, const BroObj* o2 = nullptr);
void Describe(ODesc* d) const override; void Describe(ODesc* d) const override;
// Adds type and value to description. // Adds type and value to description.

View file

@ -13,26 +13,26 @@
#include "BroString.h" #include "BroString.h"
#include "Reporter.h" #include "Reporter.h"
static RecordType* ip4_hdr_type = 0; static RecordType* ip4_hdr_type = nullptr;
static RecordType* ip6_hdr_type = 0; static RecordType* ip6_hdr_type = nullptr;
static RecordType* ip6_ext_hdr_type = 0; static RecordType* ip6_ext_hdr_type = nullptr;
static RecordType* ip6_option_type = 0; static RecordType* ip6_option_type = nullptr;
static RecordType* ip6_hopopts_type = 0; static RecordType* ip6_hopopts_type = nullptr;
static RecordType* ip6_dstopts_type = 0; static RecordType* ip6_dstopts_type = nullptr;
static RecordType* ip6_routing_type = 0; static RecordType* ip6_routing_type = nullptr;
static RecordType* ip6_fragment_type = 0; static RecordType* ip6_fragment_type = nullptr;
static RecordType* ip6_ah_type = 0; static RecordType* ip6_ah_type = nullptr;
static RecordType* ip6_esp_type = 0; static RecordType* ip6_esp_type = nullptr;
static RecordType* ip6_mob_type = 0; static RecordType* ip6_mob_type = nullptr;
static RecordType* ip6_mob_msg_type = 0; static RecordType* ip6_mob_msg_type = nullptr;
static RecordType* ip6_mob_brr_type = 0; static RecordType* ip6_mob_brr_type = nullptr;
static RecordType* ip6_mob_hoti_type = 0; static RecordType* ip6_mob_hoti_type = nullptr;
static RecordType* ip6_mob_coti_type = 0; static RecordType* ip6_mob_coti_type = nullptr;
static RecordType* ip6_mob_hot_type = 0; static RecordType* ip6_mob_hot_type = nullptr;
static RecordType* ip6_mob_cot_type = 0; static RecordType* ip6_mob_cot_type = nullptr;
static RecordType* ip6_mob_bu_type = 0; static RecordType* ip6_mob_bu_type = nullptr;
static RecordType* ip6_mob_back_type = 0; static RecordType* ip6_mob_back_type = nullptr;
static RecordType* ip6_mob_be_type = 0; static RecordType* ip6_mob_be_type = nullptr;
static inline RecordType* hdrType(RecordType*& type, const char* name) static inline RecordType* hdrType(RecordType*& type, const char* name)
{ {
@ -79,7 +79,7 @@ static VectorVal* BuildOptionsVal(const u_char* data, int len)
RecordVal* IPv6_Hdr::BuildRecordVal(VectorVal* chain) const RecordVal* IPv6_Hdr::BuildRecordVal(VectorVal* chain) const
{ {
RecordVal* rv = 0; RecordVal* rv = nullptr;
switch ( type ) { switch ( type ) {
case IPPROTO_IPV6: case IPPROTO_IPV6:
@ -330,7 +330,7 @@ IPAddr IP_Hdr::DstAddr() const
RecordVal* IP_Hdr::BuildIPHdrVal() const RecordVal* IP_Hdr::BuildIPHdrVal() const
{ {
RecordVal* rval = 0; RecordVal* rval = nullptr;
if ( ip4 ) if ( ip4 )
{ {
@ -354,7 +354,7 @@ RecordVal* IP_Hdr::BuildIPHdrVal() const
RecordVal* IP_Hdr::BuildPktHdrVal() const RecordVal* IP_Hdr::BuildPktHdrVal() const
{ {
static RecordType* pkt_hdr_type = 0; static RecordType* pkt_hdr_type = nullptr;
if ( ! pkt_hdr_type ) if ( ! pkt_hdr_type )
pkt_hdr_type = internal_type("pkt_hdr")->AsRecordType(); pkt_hdr_type = internal_type("pkt_hdr")->AsRecordType();
@ -365,9 +365,9 @@ RecordVal* IP_Hdr::BuildPktHdrVal() const
RecordVal* IP_Hdr::BuildPktHdrVal(RecordVal* pkt_hdr, int sindex) const RecordVal* IP_Hdr::BuildPktHdrVal(RecordVal* pkt_hdr, int sindex) const
{ {
static RecordType* tcp_hdr_type = 0; static RecordType* tcp_hdr_type = nullptr;
static RecordType* udp_hdr_type = 0; static RecordType* udp_hdr_type = nullptr;
static RecordType* icmp_hdr_type = 0; static RecordType* icmp_hdr_type = nullptr;
if ( ! tcp_hdr_type ) if ( ! tcp_hdr_type )
{ {

View file

@ -136,7 +136,7 @@ public:
/** /**
* Returns the script-layer record representation of the header. * Returns the script-layer record representation of the header.
*/ */
RecordVal* BuildRecordVal(VectorVal* chain = 0) const; RecordVal* BuildRecordVal(VectorVal* chain = nullptr) const;
protected: protected:
uint8_t type; uint8_t type;
@ -184,7 +184,7 @@ public:
*/ */
const struct ip6_frag* GetFragHdr() const const struct ip6_frag* GetFragHdr() const
{ return IsFragment() ? { return IsFragment() ?
(const struct ip6_frag*)chain[chain.size()-1]->Data(): 0; } (const struct ip6_frag*)chain[chain.size()-1]->Data(): nullptr; }
/** /**
* If the header chain is a fragment, returns the offset in number of bytes * If the header chain is a fragment, returns the offset in number of bytes

View file

@ -14,11 +14,11 @@ static int nfa_state_id = 0;
NFA_State::NFA_State(int arg_sym, EquivClass* ec) NFA_State::NFA_State(int arg_sym, EquivClass* ec)
{ {
sym = arg_sym; sym = arg_sym;
ccl = 0; ccl = nullptr;
accept = NO_ACCEPT; accept = NO_ACCEPT;
first_trans_is_back_ref = false; first_trans_is_back_ref = false;
mark = 0; mark = nullptr;
epsclosure = 0; epsclosure = nullptr;
id = ++nfa_state_id; id = ++nfa_state_id;
// Fix up equivalence classes based on this transition. Note that any // Fix up equivalence classes based on this transition. Note that any
@ -39,9 +39,9 @@ NFA_State::NFA_State(CCL* arg_ccl)
ccl = arg_ccl; ccl = arg_ccl;
accept = NO_ACCEPT; accept = NO_ACCEPT;
first_trans_is_back_ref = false; first_trans_is_back_ref = false;
mark = 0; mark = nullptr;
id = ++nfa_state_id; id = ++nfa_state_id;
epsclosure = 0; epsclosure = nullptr;
} }
NFA_State::~NFA_State() NFA_State::~NFA_State()
@ -67,7 +67,7 @@ NFA_State* NFA_State::DeepCopy()
return mark; return mark;
} }
NFA_State* copy = ccl ? new NFA_State(ccl) : new NFA_State(sym, 0); NFA_State* copy = ccl ? new NFA_State(ccl) : new NFA_State(sym, nullptr);
SetMark(copy); SetMark(copy);
for ( int i = 0; i < xtions.length(); ++i ) for ( int i = 0; i < xtions.length(); ++i )
@ -80,7 +80,7 @@ void NFA_State::ClearMarks()
{ {
if ( mark ) if ( mark )
{ {
SetMark(0); SetMark(nullptr);
for ( int i = 0; i < xtions.length(); ++i ) for ( int i = 0; i < xtions.length(); ++i )
xtions[i]->ClearMarks(); xtions[i]->ClearMarks();
} }
@ -125,7 +125,7 @@ NFA_state_list* NFA_State::EpsilonClosure()
// Clear out markers. // Clear out markers.
for ( i = 0; i < states.length(); ++i ) for ( i = 0; i < states.length(); ++i )
states[i]->SetMark(0); states[i]->SetMark(nullptr);
// Make it fit. // Make it fit.
epsclosure->resize(0); epsclosure->resize(0);
@ -262,7 +262,7 @@ void NFA_Machine::MakePositiveClosure()
void NFA_Machine::MakeRepl(int lower, int upper) void NFA_Machine::MakeRepl(int lower, int upper)
{ {
NFA_Machine* dup = 0; NFA_Machine* dup = nullptr;
if ( upper > lower || upper == NO_UPPER_BOUND ) if ( upper > lower || upper == NO_UPPER_BOUND )
dup = DuplicateMachine(); dup = DuplicateMachine();

View file

@ -78,12 +78,12 @@ protected:
class EpsilonState : public NFA_State { class EpsilonState : public NFA_State {
public: public:
EpsilonState() : NFA_State(SYM_EPSILON, 0) { } EpsilonState() : NFA_State(SYM_EPSILON, nullptr) { }
}; };
class NFA_Machine : public BroObj { class NFA_Machine : public BroObj {
public: public:
explicit NFA_Machine(NFA_State* first, NFA_State* final = 0); explicit NFA_Machine(NFA_State* first, NFA_State* final = nullptr);
~NFA_Machine() override; ~NFA_Machine() override;
NFA_State* FirstState() const { return first_state; } NFA_State* FirstState() const { return first_state; }

View file

@ -115,7 +115,7 @@ RETSIGTYPE watchdog(int /* signo */)
if ( ! pkt_dumper || pkt_dumper->IsError() ) if ( ! pkt_dumper || pkt_dumper->IsError() )
{ {
reporter->Error("watchdog: can't open watchdog-pkt.pcap for writing"); reporter->Error("watchdog: can't open watchdog-pkt.pcap for writing");
pkt_dumper = 0; pkt_dumper = nullptr;
} }
} }

View file

@ -30,7 +30,7 @@ extern void net_delete(); // Reclaim all memory, etc.
extern void net_update_time(double new_network_time); extern void net_update_time(double new_network_time);
extern void net_packet_dispatch(double t, const Packet* pkt, extern void net_packet_dispatch(double t, const Packet* pkt,
iosource::PktSrc* src_ps); iosource::PktSrc* src_ps);
extern void expire_timers(iosource::PktSrc* src_ps = 0); extern void expire_timers(iosource::PktSrc* src_ps = nullptr);
extern void zeek_terminate_loop(const char* reason); extern void zeek_terminate_loop(const char* reason);
// Functions to temporarily suspend processing of live input (network packets // Functions to temporarily suspend processing of live input (network packets

View file

@ -165,7 +165,7 @@ void BroObj::DoMsg(ODesc* d, const char s1[], const BroObj* obj2,
d->Add(s1); d->Add(s1);
PinPoint(d, obj2, pinpoint_only); PinPoint(d, obj2, pinpoint_only);
const Location* loc2 = 0; const Location* loc2 = nullptr;
if ( obj2 && obj2->GetLocationInfo() != &no_location && if ( obj2 && obj2->GetLocationInfo() != &no_location &&
*obj2->GetLocationInfo() != *GetLocationInfo() ) *obj2->GetLocationInfo() != *GetLocationInfo() )
loc2 = obj2->GetLocationInfo(); loc2 = obj2->GetLocationInfo();

View file

@ -66,7 +66,7 @@ public:
// we check for whether start_location has a line number // we check for whether start_location has a line number
// of 0, which should only happen if it's been assigned // of 0, which should only happen if it's been assigned
// to no_location (or hasn't been initialized at all). // to no_location (or hasn't been initialized at all).
location = 0; location = nullptr;
if ( start_location.first_line != 0 ) if ( start_location.first_line != 0 )
SetLocationInfo(&start_location, &end_location); SetLocationInfo(&start_location, &end_location);
} }
@ -80,14 +80,14 @@ public:
// Report user warnings/errors. If obj2 is given, then it's // Report user warnings/errors. If obj2 is given, then it's
// included in the message, though if pinpoint_only is non-zero, // included in the message, though if pinpoint_only is non-zero,
// then obj2 is only used to pinpoint the location. // then obj2 is only used to pinpoint the location.
void Warn(const char* msg, const BroObj* obj2 = 0, void Warn(const char* msg, const BroObj* obj2 = nullptr,
bool pinpoint_only = false, const Location* expr_location = 0) const; bool pinpoint_only = false, const Location* expr_location = nullptr) const;
void Error(const char* msg, const BroObj* obj2 = 0, void Error(const char* msg, const BroObj* obj2 = nullptr,
bool pinpoint_only = false, const Location* expr_location = 0) const; bool pinpoint_only = false, const Location* expr_location = nullptr) const;
// Report internal errors. // Report internal errors.
void BadTag(const char* msg, const char* t1 = 0, void BadTag(const char* msg, const char* t1 = nullptr,
const char* t2 = 0) const; const char* t2 = nullptr) const;
#define CHECK_TAG(t1, t2, text, tag_to_text_func) \ #define CHECK_TAG(t1, t2, text, tag_to_text_func) \
{ \ { \
if ( t1 != t2 ) \ if ( t1 != t2 ) \
@ -134,9 +134,9 @@ protected:
private: private:
friend class SuppressErrors; friend class SuppressErrors;
void DoMsg(ODesc* d, const char s1[], const BroObj* obj2 = 0, void DoMsg(ODesc* d, const char s1[], const BroObj* obj2 = nullptr,
bool pinpoint_only = false, const Location* expr_location = 0) const; bool pinpoint_only = false, const Location* expr_location = nullptr) const;
void PinPoint(ODesc* d, const BroObj* obj2 = 0, void PinPoint(ODesc* d, const BroObj* obj2 = nullptr,
bool pinpoint_only = false) const; bool pinpoint_only = false) const;
friend inline void Ref(BroObj* o); friend inline void Ref(BroObj* o);

View file

@ -699,24 +699,24 @@ bool EntropyVal::DoUnserialize(const broker::data& data)
BloomFilterVal::BloomFilterVal() BloomFilterVal::BloomFilterVal()
: OpaqueVal(bloomfilter_type) : OpaqueVal(bloomfilter_type)
{ {
type = 0; type = nullptr;
hash = 0; hash = nullptr;
bloom_filter = 0; bloom_filter = nullptr;
} }
BloomFilterVal::BloomFilterVal(OpaqueType* t) BloomFilterVal::BloomFilterVal(OpaqueType* t)
: OpaqueVal(t) : OpaqueVal(t)
{ {
type = 0; type = nullptr;
hash = 0; hash = nullptr;
bloom_filter = 0; bloom_filter = nullptr;
} }
BloomFilterVal::BloomFilterVal(probabilistic::BloomFilter* bf) BloomFilterVal::BloomFilterVal(probabilistic::BloomFilter* bf)
: OpaqueVal(bloomfilter_type) : OpaqueVal(bloomfilter_type)
{ {
type = 0; type = nullptr;
hash = 0; hash = nullptr;
bloom_filter = bf; bloom_filter = bf;
} }
@ -790,13 +790,13 @@ IntrusivePtr<BloomFilterVal> BloomFilterVal::Merge(const BloomFilterVal* x,
! same_type(x->Type(), y->Type()) ) ! same_type(x->Type(), y->Type()) )
{ {
reporter->Error("cannot merge Bloom filters with different types"); reporter->Error("cannot merge Bloom filters with different types");
return 0; return nullptr;
} }
if ( typeid(*x->bloom_filter) != typeid(*y->bloom_filter) ) if ( typeid(*x->bloom_filter) != typeid(*y->bloom_filter) )
{ {
reporter->Error("cannot merge different Bloom filter types"); reporter->Error("cannot merge different Bloom filter types");
return 0; return nullptr;
} }
probabilistic::BloomFilter* copy = x->bloom_filter->Clone(); probabilistic::BloomFilter* copy = x->bloom_filter->Clone();
@ -805,7 +805,7 @@ IntrusivePtr<BloomFilterVal> BloomFilterVal::Merge(const BloomFilterVal* x,
{ {
delete copy; delete copy;
reporter->Error("failed to merge Bloom filter"); reporter->Error("failed to merge Bloom filter");
return 0; return nullptr;
} }
auto merged = make_intrusive<BloomFilterVal>(copy); auto merged = make_intrusive<BloomFilterVal>(copy);
@ -813,7 +813,7 @@ IntrusivePtr<BloomFilterVal> BloomFilterVal::Merge(const BloomFilterVal* x,
if ( x->Type() && ! merged->Typify(x->Type()) ) if ( x->Type() && ! merged->Typify(x->Type()) )
{ {
reporter->Error("failed to set type on merged Bloom filter"); reporter->Error("failed to set type on merged Bloom filter");
return 0; return nullptr;
} }
return merged; return merged;
@ -876,17 +876,17 @@ bool BloomFilterVal::DoUnserialize(const broker::data& data)
CardinalityVal::CardinalityVal() : OpaqueVal(cardinality_type) CardinalityVal::CardinalityVal() : OpaqueVal(cardinality_type)
{ {
c = 0; c = nullptr;
type = 0; type = nullptr;
hash = 0; hash = nullptr;
} }
CardinalityVal::CardinalityVal(probabilistic::CardinalityCounter* arg_c) CardinalityVal::CardinalityVal(probabilistic::CardinalityCounter* arg_c)
: OpaqueVal(cardinality_type) : OpaqueVal(cardinality_type)
{ {
c = arg_c; c = arg_c;
type = 0; type = nullptr;
hash = 0; hash = nullptr;
} }
CardinalityVal::~CardinalityVal() CardinalityVal::~CardinalityVal()

View file

@ -186,49 +186,49 @@ zeek::Options zeek::parse_cmdline(int argc, char** argv)
} }
constexpr struct option long_opts[] = { constexpr struct option long_opts[] = {
{"parse-only", no_argument, 0, 'a'}, {"parse-only", no_argument, nullptr, 'a'},
{"bare-mode", no_argument, 0, 'b'}, {"bare-mode", no_argument, nullptr, 'b'},
{"debug-script", no_argument, 0, 'd'}, {"debug-script", no_argument, nullptr, 'd'},
{"exec", required_argument, 0, 'e'}, {"exec", required_argument, nullptr, 'e'},
{"filter", required_argument, 0, 'f'}, {"filter", required_argument, nullptr, 'f'},
{"help", no_argument, 0, 'h'}, {"help", no_argument, nullptr, 'h'},
{"iface", required_argument, 0, 'i'}, {"iface", required_argument, nullptr, 'i'},
{"zeekygen", required_argument, 0, 'X'}, {"zeekygen", required_argument, nullptr, 'X'},
{"prefix", required_argument, 0, 'p'}, {"prefix", required_argument, nullptr, 'p'},
{"readfile", required_argument, 0, 'r'}, {"readfile", required_argument, nullptr, 'r'},
{"rulefile", required_argument, 0, 's'}, {"rulefile", required_argument, nullptr, 's'},
{"tracefile", required_argument, 0, 't'}, {"tracefile", required_argument, nullptr, 't'},
{"writefile", required_argument, 0, 'w'}, {"writefile", required_argument, nullptr, 'w'},
{"version", no_argument, 0, 'v'}, {"version", no_argument, nullptr, 'v'},
{"no-checksums", no_argument, 0, 'C'}, {"no-checksums", no_argument, nullptr, 'C'},
{"force-dns", no_argument, 0, 'F'}, {"force-dns", no_argument, nullptr, 'F'},
{"load-seeds", required_argument, 0, 'G'}, {"load-seeds", required_argument, nullptr, 'G'},
{"save-seeds", required_argument, 0, 'H'}, {"save-seeds", required_argument, nullptr, 'H'},
{"print-plugins", no_argument, 0, 'N'}, {"print-plugins", no_argument, nullptr, 'N'},
{"prime-dns", no_argument, 0, 'P'}, {"prime-dns", no_argument, nullptr, 'P'},
{"time", no_argument, 0, 'Q'}, {"time", no_argument, nullptr, 'Q'},
{"debug-rules", no_argument, 0, 'S'}, {"debug-rules", no_argument, nullptr, 'S'},
{"re-level", required_argument, 0, 'T'}, {"re-level", required_argument, nullptr, 'T'},
{"watchdog", no_argument, 0, 'W'}, {"watchdog", no_argument, nullptr, 'W'},
{"print-id", required_argument, 0, 'I'}, {"print-id", required_argument, nullptr, 'I'},
{"status-file", required_argument, 0, 'U'}, {"status-file", required_argument, nullptr, 'U'},
#ifdef DEBUG #ifdef DEBUG
{"debug", required_argument, 0, 'B'}, {"debug", required_argument, nullptr, 'B'},
#endif #endif
#ifdef USE_IDMEF #ifdef USE_IDMEF
{"idmef-dtd", required_argument, 0, 'n'}, {"idmef-dtd", required_argument, nullptr, 'n'},
#endif #endif
#ifdef USE_PERFTOOLS_DEBUG #ifdef USE_PERFTOOLS_DEBUG
{"mem-leaks", no_argument, 0, 'm'}, {"mem-leaks", no_argument, nullptr, 'm'},
{"mem-profile", no_argument, 0, 'M'}, {"mem-profile", no_argument, nullptr, 'M'},
#endif #endif
{"pseudo-realtime", optional_argument, 0, 'E'}, {"pseudo-realtime", optional_argument, nullptr, 'E'},
{"jobs", optional_argument, 0, 'j'}, {"jobs", optional_argument, nullptr, 'j'},
{"test", no_argument, 0, '#'}, {"test", no_argument, nullptr, '#'},
{0, 0, 0, 0}, {nullptr, 0, nullptr, 0},
}; };
char opts[256]; char opts[256];

View file

@ -18,8 +18,8 @@ using namespace std;
#include "Reporter.h" #include "Reporter.h"
struct PolicyFile { struct PolicyFile {
PolicyFile () { filedata = 0; lmtime = 0; } PolicyFile () { filedata = nullptr; lmtime = 0; }
~PolicyFile () { delete [] filedata; filedata = 0; } ~PolicyFile () { delete [] filedata; filedata = nullptr; }
time_t lmtime; time_t lmtime;
char* filedata; char* filedata;

View file

@ -28,7 +28,7 @@ void* PrefixTable::Insert(const IPAddr& addr, int width, void* data)
if ( ! node ) if ( ! node )
{ {
reporter->InternalWarning("Cannot create node in patricia tree"); reporter->InternalWarning("Cannot create node in patricia tree");
return 0; return nullptr;
} }
void* old = node->data; void* old = node->data;
@ -59,7 +59,7 @@ void* PrefixTable::Insert(const Val* value, void* data)
default: default:
reporter->InternalWarning("Wrong index type for PrefixTable"); reporter->InternalWarning("Wrong index type for PrefixTable");
return 0; return nullptr;
} }
} }
@ -97,7 +97,7 @@ void* PrefixTable::Lookup(const IPAddr& addr, int width, bool exact) const
patricia_node_t** list = nullptr; patricia_node_t** list = nullptr;
Deref_Prefix(prefix); Deref_Prefix(prefix);
return node ? node->data : 0; return node ? node->data : nullptr;
} }
void* PrefixTable::Lookup(const Val* value, bool exact) const void* PrefixTable::Lookup(const Val* value, bool exact) const
@ -120,7 +120,7 @@ void* PrefixTable::Lookup(const Val* value, bool exact) const
default: default:
reporter->InternalWarning("Wrong index type %d for PrefixTable", reporter->InternalWarning("Wrong index type %d for PrefixTable",
value->Type()->Tag()); value->Type()->Tag());
return 0; return nullptr;
} }
} }
@ -131,7 +131,7 @@ void* PrefixTable::Remove(const IPAddr& addr, int width)
Deref_Prefix(prefix); Deref_Prefix(prefix);
if ( ! node ) if ( ! node )
return 0; return nullptr;
void* old = node->data; void* old = node->data;
patricia_remove(tree, node); patricia_remove(tree, node);
@ -158,7 +158,7 @@ void* PrefixTable::Remove(const Val* value)
default: default:
reporter->InternalWarning("Wrong index type for PrefixTable"); reporter->InternalWarning("Wrong index type for PrefixTable");
return 0; return nullptr;
} }
} }
@ -167,7 +167,7 @@ PrefixTable::iterator PrefixTable::InitIterator()
iterator i; iterator i;
i.Xsp = i.Xstack; i.Xsp = i.Xstack;
i.Xrn = tree->head; i.Xrn = tree->head;
i.Xnode = 0; i.Xnode = nullptr;
return i; return i;
} }
@ -177,7 +177,7 @@ void* PrefixTable::GetNext(iterator* i)
{ {
i->Xnode = i->Xrn; i->Xnode = i->Xrn;
if ( ! i->Xnode ) if ( ! i->Xnode )
return 0; return nullptr;
if ( i->Xrn->l ) if ( i->Xrn->l )
{ {
@ -194,7 +194,7 @@ void* PrefixTable::GetNext(iterator* i)
i->Xrn = *(--i->Xsp); i->Xrn = *(--i->Xsp);
else else
i->Xrn = (patricia_node_t*) 0; i->Xrn = (patricia_node_t*) nullptr;
if ( i->Xnode->prefix ) if ( i->Xnode->prefix )
return (void*) i->Xnode->data; return (void*) i->Xnode->data;

View file

@ -30,10 +30,10 @@ public:
// Addr in network byte order. If data is zero, acts like a set. // Addr in network byte order. If data is zero, acts like a set.
// Returns ptr to old data if already existing. // Returns ptr to old data if already existing.
// For existing items without data, returns non-nil if found. // For existing items without data, returns non-nil if found.
void* Insert(const IPAddr& addr, int width, void* data = 0); void* Insert(const IPAddr& addr, int width, void* data = nullptr);
// Value may be addr or subnet. // Value may be addr or subnet.
void* Insert(const Val* value, void* data = 0); void* Insert(const Val* value, void* data = nullptr);
// Returns nil if not found, pointer to data otherwise. // Returns nil if not found, pointer to data otherwise.
// For items without data, returns non-nil if found. // For items without data, returns non-nil if found.

View file

@ -34,7 +34,7 @@ public:
PQ_Element* Top() const PQ_Element* Top() const
{ {
if ( heap_size == 0 ) if ( heap_size == 0 )
return 0; return nullptr;
return heap[0]; return heap[0];
} }

View file

@ -12,10 +12,10 @@
#include "Reporter.h" #include "Reporter.h"
#include "BroString.h" #include "BroString.h"
CCL* curr_ccl = 0; CCL* curr_ccl = nullptr;
Specific_RE_Matcher* rem; Specific_RE_Matcher* rem;
NFA_Machine* nfa = 0; NFA_Machine* nfa = nullptr;
int case_insensitive = 0; int case_insensitive = 0;
extern int RE_parse(void); extern int RE_parse(void);
@ -27,10 +27,10 @@ Specific_RE_Matcher::Specific_RE_Matcher(match_type arg_mt, int arg_multiline)
{ {
mt = arg_mt; mt = arg_mt;
multiline = arg_multiline; multiline = arg_multiline;
any_ccl = 0; any_ccl = nullptr;
pattern_text = 0; pattern_text = nullptr;
dfa = 0; dfa = nullptr;
ecs = 0; ecs = nullptr;
accepted = new AcceptingSet(); accepted = new AcceptingSet();
} }
@ -131,7 +131,7 @@ bool Specific_RE_Matcher::Compile(bool lazy)
{ {
reporter->Error("error compiling pattern /%s/", pattern_text); reporter->Error("error compiling pattern /%s/", pattern_text);
Unref(nfa); Unref(nfa);
nfa = 0; nfa = nullptr;
return false; return false;
} }
@ -141,7 +141,7 @@ bool Specific_RE_Matcher::Compile(bool lazy)
dfa = new DFA_Machine(nfa, EC()); dfa = new DFA_Machine(nfa, EC());
Unref(nfa); Unref(nfa);
nfa = 0; nfa = nullptr;
ecs = EC()->EquivClasses(); ecs = EC()->EquivClasses();
@ -155,7 +155,7 @@ bool Specific_RE_Matcher::CompileSet(const string_list& set, const int_list& idx
rem = this; rem = this;
NFA_Machine* set_nfa = 0; NFA_Machine* set_nfa = nullptr;
loop_over_list(set, i) loop_over_list(set, i)
{ {
@ -172,7 +172,7 @@ bool Specific_RE_Matcher::CompileSet(const string_list& set, const int_list& idx
else else
Unref(nfa); Unref(nfa);
nfa = 0; nfa = nullptr;
return false; return false;
} }
@ -257,7 +257,7 @@ bool Specific_RE_Matcher::MatchAll(const u_char* bv, int n)
if ( d ) if ( d )
d = d->Xtion(ecs[SYM_EOL], dfa); d = d->Xtion(ecs[SYM_EOL], dfa);
return d && d->Accept() != 0; return d && d->Accept() != nullptr;
} }
@ -354,7 +354,7 @@ bool RE_Match_State::Match(const u_char* bv, int n,
if ( ! next_state ) if ( ! next_state )
{ {
current_state = 0; current_state = nullptr;
break; break;
} }

View file

@ -140,10 +140,10 @@ class RE_Match_State {
public: public:
explicit RE_Match_State(Specific_RE_Matcher* matcher) explicit RE_Match_State(Specific_RE_Matcher* matcher)
{ {
dfa = matcher->DFA() ? matcher->DFA() : 0; dfa = matcher->DFA() ? matcher->DFA() : nullptr;
ecs = matcher->EC()->EquivClasses(); ecs = matcher->EC()->EquivClasses();
current_pos = -1; current_pos = -1;
current_state = 0; current_state = nullptr;
} }
const AcceptingMatchSet& AcceptedMatches() const const AcceptingMatchSet& AcceptedMatches() const
@ -159,7 +159,7 @@ public:
void Clear() void Clear()
{ {
current_pos = -1; current_pos = -1;
current_state = 0; current_state = nullptr;
accepted_matches.clear(); accepted_matches.clear();
} }

View file

@ -30,7 +30,7 @@ int closelog();
} }
#endif #endif
Reporter* reporter = 0; Reporter* reporter = nullptr;
Reporter::Reporter() Reporter::Reporter()
{ {
@ -88,8 +88,8 @@ void Reporter::Info(const char* fmt, ...)
{ {
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
FILE* out = EmitToStderr(info_to_stderr) ? stderr : 0; FILE* out = EmitToStderr(info_to_stderr) ? stderr : nullptr;
DoLog("", reporter_info, out, 0, 0, true, true, 0, fmt, ap); DoLog("", reporter_info, out, nullptr, nullptr, true, true, nullptr, fmt, ap);
va_end(ap); va_end(ap);
} }
@ -97,8 +97,8 @@ void Reporter::Warning(const char* fmt, ...)
{ {
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
FILE* out = EmitToStderr(warnings_to_stderr) ? stderr : 0; FILE* out = EmitToStderr(warnings_to_stderr) ? stderr : nullptr;
DoLog("warning", reporter_warning, out, 0, 0, true, true, 0, fmt, ap); DoLog("warning", reporter_warning, out, nullptr, nullptr, true, true, nullptr, fmt, ap);
va_end(ap); va_end(ap);
} }
@ -107,8 +107,8 @@ void Reporter::Error(const char* fmt, ...)
++errors; ++errors;
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
FILE* out = EmitToStderr(errors_to_stderr) ? stderr : 0; FILE* out = EmitToStderr(errors_to_stderr) ? stderr : nullptr;
DoLog("error", reporter_error, out, 0, 0, true, true, 0, fmt, ap); DoLog("error", reporter_error, out, nullptr, nullptr, true, true, nullptr, fmt, ap);
va_end(ap); va_end(ap);
} }
@ -118,7 +118,7 @@ void Reporter::FatalError(const char* fmt, ...)
va_start(ap, fmt); va_start(ap, fmt);
// Always log to stderr. // Always log to stderr.
DoLog("fatal error", 0, stderr, 0, 0, true, false, 0, fmt, ap); DoLog("fatal error", nullptr, stderr, nullptr, nullptr, true, false, nullptr, fmt, ap);
va_end(ap); va_end(ap);
@ -134,7 +134,7 @@ void Reporter::FatalErrorWithCore(const char* fmt, ...)
va_start(ap, fmt); va_start(ap, fmt);
// Always log to stderr. // Always log to stderr.
DoLog("fatal error", 0, stderr, 0, 0, true, false, 0, fmt, ap); DoLog("fatal error", nullptr, stderr, nullptr, nullptr, true, false, nullptr, fmt, ap);
va_end(ap); va_end(ap);
@ -152,8 +152,8 @@ void Reporter::ExprRuntimeError(const Expr* expr, const char* fmt, ...)
PushLocation(expr->GetLocationInfo()); PushLocation(expr->GetLocationInfo());
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
FILE* out = EmitToStderr(errors_to_stderr) ? stderr : 0; FILE* out = EmitToStderr(errors_to_stderr) ? stderr : nullptr;
DoLog("expression error", reporter_error, out, 0, 0, true, true, DoLog("expression error", reporter_error, out, nullptr, nullptr, true, true,
d.Description(), fmt, ap); d.Description(), fmt, ap);
va_end(ap); va_end(ap);
PopLocation(); PopLocation();
@ -166,8 +166,8 @@ void Reporter::RuntimeError(const Location* location, const char* fmt, ...)
PushLocation(location); PushLocation(location);
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
FILE* out = EmitToStderr(errors_to_stderr) ? stderr : 0; FILE* out = EmitToStderr(errors_to_stderr) ? stderr : nullptr;
DoLog("runtime error", reporter_error, out, 0, 0, true, true, "", fmt, ap); DoLog("runtime error", reporter_error, out, nullptr, nullptr, true, true, "", fmt, ap);
va_end(ap); va_end(ap);
PopLocation(); PopLocation();
throw InterpreterException(); throw InterpreterException();
@ -179,7 +179,7 @@ void Reporter::InternalError(const char* fmt, ...)
va_start(ap, fmt); va_start(ap, fmt);
// Always log to stderr. // Always log to stderr.
DoLog("internal error", 0, stderr, 0, 0, true, false, 0, fmt, ap); DoLog("internal error", nullptr, stderr, nullptr, nullptr, true, false, nullptr, fmt, ap);
va_end(ap); va_end(ap);
@ -197,7 +197,7 @@ void Reporter::AnalyzerError(analyzer::Analyzer* a, const char* fmt,
va_start(ap, fmt); va_start(ap, fmt);
// Always log to stderr. // Always log to stderr.
// TODO: would be nice to also log a call stack. // TODO: would be nice to also log a call stack.
DoLog("analyzer error", reporter_error, stderr, 0, 0, true, true, 0, fmt, DoLog("analyzer error", reporter_error, stderr, nullptr, nullptr, true, true, nullptr, fmt,
ap); ap);
va_end(ap); va_end(ap);
} }
@ -206,9 +206,9 @@ void Reporter::InternalWarning(const char* fmt, ...)
{ {
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
FILE* out = EmitToStderr(warnings_to_stderr) ? stderr : 0; FILE* out = EmitToStderr(warnings_to_stderr) ? stderr : nullptr;
// TODO: would be nice to also log a call stack. // TODO: would be nice to also log a call stack.
DoLog("internal warning", reporter_warning, out, 0, 0, true, true, 0, fmt, DoLog("internal warning", reporter_warning, out, nullptr, nullptr, true, true, nullptr, fmt,
ap); ap);
va_end(ap); va_end(ap);
} }
@ -228,7 +228,7 @@ void Reporter::WeirdHelper(EventHandlerPtr event, val_list vl, const char* fmt_n
{ {
va_list ap; va_list ap;
va_start(ap, fmt_name); va_start(ap, fmt_name);
DoLog("weird", event, 0, 0, &vl, false, false, 0, fmt_name, ap); DoLog("weird", event, nullptr, nullptr, &vl, false, false, nullptr, fmt_name, ap);
va_end(ap); va_end(ap);
} }
@ -382,7 +382,7 @@ void Reporter::DoLog(const char* prefix, EventHandlerPtr event, FILE* out,
int size = sizeof(tmp); int size = sizeof(tmp);
char* buffer = tmp; char* buffer = tmp;
char* alloced = 0; char* alloced = nullptr;
string loc_str; string loc_str;

View file

@ -87,7 +87,7 @@ void Rule::AddRequires(const char* id, bool opposite_direction, bool negate)
{ {
Precond* p = new Precond; Precond* p = new Precond;
p->id = copy_string(id); p->id = copy_string(id);
p->rule = 0; p->rule = nullptr;
p->opposite_dir = opposite_direction; p->opposite_dir = opposite_direction;
p->negate = negate; p->negate = negate;

View file

@ -25,7 +25,7 @@ public:
idx = rule_counter++; idx = rule_counter++;
location = arg_location; location = arg_location;
active = true; active = true;
next = 0; next = nullptr;
} }
~Rule(); ~Rule();

View file

@ -48,10 +48,10 @@ RuleHdrTest::RuleHdrTest(Prot arg_prot, uint32_t arg_offset, uint32_t arg_size,
size = arg_size; size = arg_size;
comp = arg_comp; comp = arg_comp;
vals = arg_vals; vals = arg_vals;
sibling = 0; sibling = nullptr;
child = 0; child = nullptr;
pattern_rules = 0; pattern_rules = nullptr;
pure_rules = 0; pure_rules = nullptr;
ruleset = new IntSet; ruleset = new IntSet;
id = ++idcounter; id = ++idcounter;
level = 0; level = 0;
@ -65,10 +65,10 @@ RuleHdrTest::RuleHdrTest(Prot arg_prot, Comp arg_comp, vector<IPPrefix> arg_v)
comp = arg_comp; comp = arg_comp;
vals = new maskedvalue_list; vals = new maskedvalue_list;
prefix_vals = std::move(arg_v); prefix_vals = std::move(arg_v);
sibling = 0; sibling = nullptr;
child = 0; child = nullptr;
pattern_rules = 0; pattern_rules = nullptr;
pure_rules = 0; pure_rules = nullptr;
ruleset = new IntSet; ruleset = new IntSet;
id = ++idcounter; id = ++idcounter;
level = 0; level = 0;
@ -103,7 +103,7 @@ RuleHdrTest::RuleHdrTest(RuleHdrTest& h)
for ( PatternSet* orig_set : h.psets[j] ) for ( PatternSet* orig_set : h.psets[j] )
{ {
PatternSet* copied_set = new PatternSet; PatternSet* copied_set = new PatternSet;
copied_set->re = 0; copied_set->re = nullptr;
copied_set->ids = orig_set->ids; copied_set->ids = orig_set->ids;
for ( const auto& pattern : orig_set->patterns ) for ( const auto& pattern : orig_set->patterns )
copied_set->patterns.push_back(copy_string(pattern)); copied_set->patterns.push_back(copy_string(pattern));
@ -113,10 +113,10 @@ RuleHdrTest::RuleHdrTest(RuleHdrTest& h)
} }
} }
sibling = 0; sibling = nullptr;
child = 0; child = nullptr;
pattern_rules = 0; pattern_rules = nullptr;
pure_rules = 0; pure_rules = nullptr;
ruleset = new IntSet; ruleset = new IntSet;
id = ++idcounter; id = ++idcounter;
level = 0; level = 0;
@ -758,8 +758,8 @@ RuleEndpointState* RuleMatcher::InitEndpoint(analyzer::Analyzer* analyzer,
// Evaluate all rules on this node which don't contain // Evaluate all rules on this node which don't contain
// any patterns. // any patterns.
for ( Rule* r = hdr_test->pure_rules; r; r = r->next ) for ( Rule* r = hdr_test->pure_rules; r; r = r->next )
if ( EvalRuleConditions(r, state, 0, 0, false) ) if ( EvalRuleConditions(r, state, nullptr, 0, false) )
ExecRuleActions(r, state, 0, 0, false); ExecRuleActions(r, state, nullptr, 0, false);
// If we're on or above the RE_level, we may have some // If we're on or above the RE_level, we may have some
// pattern matching to do. // pattern matching to do.
@ -989,7 +989,7 @@ void RuleMatcher::ExecPureRules(RuleEndpointState* state, bool eos)
for ( const auto& hdr_test : state->hdr_tests ) for ( const auto& hdr_test : state->hdr_tests )
{ {
for ( Rule* r = hdr_test->pure_rules; r; r = r->next ) for ( Rule* r = hdr_test->pure_rules; r; r = r->next )
ExecRulePurely(r, 0, state, eos); ExecRulePurely(r, nullptr, state, eos);
} }
} }
@ -1001,14 +1001,14 @@ bool RuleMatcher::ExecRulePurely(Rule* r, BroString* s,
DBG_LOG(DBG_RULES, "Checking rule %s purely", r->ID()); DBG_LOG(DBG_RULES, "Checking rule %s purely", r->ID());
if ( EvalRuleConditions(r, state, 0, 0, eos) ) if ( EvalRuleConditions(r, state, nullptr, 0, eos) )
{ {
DBG_LOG(DBG_RULES, "MATCH!"); DBG_LOG(DBG_RULES, "MATCH!");
if ( s ) if ( s )
ExecRuleActions(r, state, s->Bytes(), s->Len(), eos); ExecRuleActions(r, state, s->Bytes(), s->Len(), eos);
else else
ExecRuleActions(r, state, 0, 0, eos); ExecRuleActions(r, state, nullptr, 0, eos);
return true; return true;
} }
@ -1098,7 +1098,7 @@ void RuleMatcher::ExecRule(Rule* rule, RuleEndpointState* state, bool eos)
for ( Rule* r = h->pure_rules; r; r = r->next ) for ( Rule* r = h->pure_rules; r; r = r->next )
if ( r == rule ) if ( r == rule )
{ // found, so let's evaluate it { // found, so let's evaluate it
ExecRulePurely(rule, 0, state, eos); ExecRulePurely(rule, nullptr, state, eos);
return; return;
} }
@ -1273,7 +1273,7 @@ static Val* get_bro_val(const char* label)
if ( ! id ) if ( ! id )
{ {
rules_error("unknown script-level identifier", label); rules_error("unknown script-level identifier", label);
return 0; return nullptr;
} }
return id->ID_Val(); return id->ID_Val();
@ -1464,7 +1464,7 @@ void RuleMatcherState::FinishEndpointMatcher()
delete orig_match_state; delete orig_match_state;
delete resp_match_state; delete resp_match_state;
orig_match_state = resp_match_state = 0; orig_match_state = resp_match_state = nullptr;
} }
void RuleMatcherState::Match(Rule::PatternType type, const u_char* data, void RuleMatcherState::Match(Rule::PatternType type, const u_char* data,

View file

@ -67,7 +67,7 @@ typedef PList<BroString> bstr_list;
// Get values from Bro's script-level variables. // Get values from Bro's script-level variables.
extern void id_to_maskedvallist(const char* id, maskedvalue_list* append_to, extern void id_to_maskedvallist(const char* id, maskedvalue_list* append_to,
vector<IPPrefix>* prefix_vector = 0); vector<IPPrefix>* prefix_vector = nullptr);
extern char* id_to_str(const char* id); extern char* id_to_str(const char* id);
extern uint32_t id_to_uint(const char* id); extern uint32_t id_to_uint(const char* id);
@ -255,7 +255,7 @@ public:
* @return The results of the signature matching. * @return The results of the signature matching.
*/ */
MIME_Matches* Match(RuleFileMagicState* state, const u_char* data, MIME_Matches* Match(RuleFileMagicState* state, const u_char* data,
uint64_t len, MIME_Matches* matches = 0) const; uint64_t len, MIME_Matches* matches = nullptr) const;
/** /**
@ -312,7 +312,7 @@ public:
Val* BuildRuleStateValue(const Rule* rule, Val* BuildRuleStateValue(const Rule* rule,
const RuleEndpointState* state) const; const RuleEndpointState* state) const;
void GetStats(Stats* stats, RuleHdrTest* hdr_test = 0); void GetStats(Stats* stats, RuleHdrTest* hdr_test = nullptr);
void DumpStats(BroFile* f); void DumpStats(BroFile* f);
private: private:
@ -372,13 +372,13 @@ private:
// Keeps bi-directional matching-state. // Keeps bi-directional matching-state.
class RuleMatcherState { class RuleMatcherState {
public: public:
RuleMatcherState() { orig_match_state = resp_match_state = 0; } RuleMatcherState() { orig_match_state = resp_match_state = nullptr; }
~RuleMatcherState() ~RuleMatcherState()
{ delete orig_match_state; delete resp_match_state; } { delete orig_match_state; delete resp_match_state; }
// ip may be nil. // ip may be nil.
void InitEndpointMatcher(analyzer::Analyzer* analyzer, const IP_Hdr* ip, void InitEndpointMatcher(analyzer::Analyzer* analyzer, const IP_Hdr* ip,
int caplen, bool from_orig, analyzer::pia::PIA* pia = 0); int caplen, bool from_orig, analyzer::pia::PIA* pia = nullptr);
// bol/eol should be set to false for type Rule::PAYLOAD; they're // bol/eol should be set to false for type Rule::PAYLOAD; they're
// deduced automatically. // deduced automatically.

View file

@ -20,7 +20,7 @@ Scope::Scope(IntrusivePtr<ID> id, attr_list* al)
: scope_id(std::move(id)) : scope_id(std::move(id))
{ {
attrs = al; attrs = al;
return_type = 0; return_type = nullptr;
inits = new id_list; inits = new id_list;
@ -65,7 +65,7 @@ ID* Scope::GenerateTemporary(const char* name)
id_list* Scope::GetInits() id_list* Scope::GetInits()
{ {
id_list* ids = inits; id_list* ids = inits;
inits = 0; inits = nullptr;
return ids; return ids;
} }
@ -76,9 +76,9 @@ void Scope::Describe(ODesc* d) const
else else
{ {
d->Add(scope_id != 0); d->Add(scope_id != nullptr);
d->SP(); d->SP();
d->Add(return_type != 0); d->Add(return_type != nullptr);
d->SP(); d->SP();
d->Add(static_cast<uint64_t>(local.size())); d->Add(static_cast<uint64_t>(local.size()));
d->SP(); d->SP();
@ -149,7 +149,7 @@ IntrusivePtr<ID> lookup_ID(const char* name, const char* curr_module,
return {NewRef{}, id}; return {NewRef{}, id};
} }
return 0; return nullptr;
} }
IntrusivePtr<ID> install_ID(const char* name, const char* module_name, IntrusivePtr<ID> install_ID(const char* name, const char* module_name,

View file

@ -29,7 +29,7 @@ void SerializationFormat::StartRead(const char* data, uint32_t arg_len)
void SerializationFormat::EndRead() void SerializationFormat::EndRead()
{ {
input = 0; input = nullptr;
} }
void SerializationFormat::StartWrite() void SerializationFormat::StartWrite()
@ -37,7 +37,7 @@ void SerializationFormat::StartWrite()
if ( output && output_size > INITIAL_SIZE ) if ( output && output_size > INITIAL_SIZE )
{ {
free(output); free(output);
output = 0; output = nullptr;
} }
if ( ! output ) if ( ! output )
@ -54,7 +54,7 @@ uint32_t SerializationFormat::EndWrite(char** data)
{ {
uint32_t rval = output_pos; uint32_t rval = output_pos;
*data = output; *data = output;
output = 0; output = nullptr;
output_size = 0; output_size = 0;
output_pos = 0; output_pos = 0;
return rval; return rval;
@ -193,7 +193,7 @@ bool BinarySerializationFormat::Read(char** str, int* len, const char* tag)
if ( ! ReadData(s, l) ) if ( ! ReadData(s, l) )
{ {
delete [] s; delete [] s;
*str = 0; *str = nullptr;
return false; return false;
} }

View file

@ -68,16 +68,16 @@ NetSessions::NetSessions()
if ( stp_correlate_pair ) if ( stp_correlate_pair )
stp_manager = new analyzer::stepping_stone::SteppingStoneManager(); stp_manager = new analyzer::stepping_stone::SteppingStoneManager();
else else
stp_manager = 0; stp_manager = nullptr;
discarder = new Discarder(); discarder = new Discarder();
if ( ! discarder->IsActive() ) if ( ! discarder->IsActive() )
{ {
delete discarder; delete discarder;
discarder = 0; discarder = nullptr;
} }
packet_filter = 0; packet_filter = nullptr;
dump_this_packet = false; dump_this_packet = false;
num_packets_processed = 0; num_packets_processed = 0;
@ -86,12 +86,12 @@ NetSessions::NetSessions()
pkt_profiler = new PacketProfiler(pkt_profile_mode, pkt_profiler = new PacketProfiler(pkt_profile_mode,
pkt_profile_freq, pkt_profile_file->AsFile()); pkt_profile_freq, pkt_profile_file->AsFile());
else else
pkt_profiler = 0; pkt_profiler = nullptr;
if ( arp_request || arp_reply || bad_arp ) if ( arp_request || arp_reply || bad_arp )
arp_analyzer = new analyzer::arp::ARP_Analyzer(); arp_analyzer = new analyzer::arp::ARP_Analyzer();
else else
arp_analyzer = 0; arp_analyzer = nullptr;
memset(&stats, 0, sizeof(SessionStats)); memset(&stats, 0, sizeof(SessionStats));
} }
@ -153,7 +153,7 @@ void NetSessions::NextPacket(double t, const Packet* pkt)
const struct ip* ip = (const struct ip*) (pkt->data + pkt->hdr_size); const struct ip* ip = (const struct ip*) (pkt->data + pkt->hdr_size);
IP_Hdr ip_hdr(ip, false); IP_Hdr ip_hdr(ip, false);
DoNextPacket(t, pkt, &ip_hdr, 0); DoNextPacket(t, pkt, &ip_hdr, nullptr);
} }
else if ( pkt->l3_proto == L3_IPV6 ) else if ( pkt->l3_proto == L3_IPV6 )
@ -165,7 +165,7 @@ void NetSessions::NextPacket(double t, const Packet* pkt)
} }
IP_Hdr ip_hdr((const struct ip6_hdr*) (pkt->data + pkt->hdr_size), false, caplen); IP_Hdr ip_hdr((const struct ip6_hdr*) (pkt->data + pkt->hdr_size), false, caplen);
DoNextPacket(t, pkt, &ip_hdr, 0); DoNextPacket(t, pkt, &ip_hdr, nullptr);
} }
else if ( pkt->l3_proto == L3_ARP ) else if ( pkt->l3_proto == L3_ARP )
@ -261,7 +261,7 @@ void NetSessions::DoNextPacket(double t, const Packet* pkt, const IP_Hdr* ip_hdr
if ( discarder && discarder->NextPacket(ip_hdr, len, caplen) ) if ( discarder && discarder->NextPacket(ip_hdr, len, caplen) )
return; return;
FragReassembler* f = 0; FragReassembler* f = nullptr;
if ( ip_hdr->IsFragment() ) if ( ip_hdr->IsFragment() )
{ {
@ -574,7 +574,7 @@ void NetSessions::DoNextPacket(double t, const Packet* pkt, const IP_Hdr* ip_hdr
return; return;
} }
IP_Hdr* inner = 0; IP_Hdr* inner = nullptr;
if ( gre_version != 0 ) if ( gre_version != 0 )
{ {
@ -662,7 +662,7 @@ void NetSessions::DoNextPacket(double t, const Packet* pkt, const IP_Hdr* ip_hdr
// We already know that connection. // We already know that connection.
if ( conn->IsReuse(t, data) ) if ( conn->IsReuse(t, data) )
{ {
conn->Event(connection_reused, 0); conn->Event(connection_reused, nullptr);
Remove(conn); Remove(conn);
conn = NewConn(key, t, &id, data, proto, ip_hdr->FlowLabel(), pkt, encapsulation); conn = NewConn(key, t, &id, data, proto, ip_hdr->FlowLabel(), pkt, encapsulation);
@ -686,16 +686,16 @@ void NetSessions::DoNextPacket(double t, const Packet* pkt, const IP_Hdr* ip_hdr
conn->CheckFlowLabel(is_orig, ip_hdr->FlowLabel()); conn->CheckFlowLabel(is_orig, ip_hdr->FlowLabel());
Val* pkt_hdr_val = 0; Val* pkt_hdr_val = nullptr;
if ( ipv6_ext_headers && ip_hdr->NumHeaders() > 1 ) if ( ipv6_ext_headers && ip_hdr->NumHeaders() > 1 )
{ {
pkt_hdr_val = ip_hdr->BuildPktHdrVal(); pkt_hdr_val = ip_hdr->BuildPktHdrVal();
conn->Event(ipv6_ext_headers, 0, pkt_hdr_val); conn->Event(ipv6_ext_headers, nullptr, pkt_hdr_val);
} }
if ( new_packet ) if ( new_packet )
conn->Event(new_packet, 0, conn->Event(new_packet, nullptr,
pkt_hdr_val ? pkt_hdr_val->Ref() : ip_hdr->BuildPktHdrVal()); pkt_hdr_val ? pkt_hdr_val->Ref() : ip_hdr->BuildPktHdrVal());
conn->NextPacket(t, is_orig, ip_hdr, len, caplen, data, conn->NextPacket(t, is_orig, ip_hdr, len, caplen, data,
@ -739,7 +739,7 @@ void NetSessions::DoNextInnerPacket(double t, const Packet* pkt,
((network_time - (double)ts.tv_sec) * 1000000); ((network_time - (double)ts.tv_sec) * 1000000);
} }
const u_char* data = 0; const u_char* data = nullptr;
if ( inner->IP4_Hdr() ) if ( inner->IP4_Hdr() )
data = (const u_char*) inner->IP4_Hdr(); data = (const u_char*) inner->IP4_Hdr();
@ -906,7 +906,7 @@ Connection* NetSessions::FindConnection(Val* v)
{ {
BroType* vt = v->Type(); BroType* vt = v->Type();
if ( ! IsRecord(vt->Tag()) ) if ( ! IsRecord(vt->Tag()) )
return 0; return nullptr;
RecordType* vr = vt->AsRecordType(); RecordType* vr = vt->AsRecordType();
const val_list* vl = v->AsRecord(); const val_list* vl = v->AsRecord();
@ -931,7 +931,7 @@ Connection* NetSessions::FindConnection(Val* v)
resp_p = vr->FieldOffset("resp_p"); resp_p = vr->FieldOffset("resp_p");
if ( orig_h < 0 || resp_h < 0 || orig_p < 0 || resp_p < 0 ) if ( orig_h < 0 || resp_h < 0 || orig_p < 0 || resp_p < 0 )
return 0; return nullptr;
// ### we ought to check that the fields have the right // ### we ought to check that the fields have the right
// types, too. // types, too.
@ -967,7 +967,7 @@ Connection* NetSessions::FindConnection(Val* v)
// This can happen due to pseudo-connections we // This can happen due to pseudo-connections we
// construct, for example for packet headers embedded // construct, for example for packet headers embedded
// in ICMPs. // in ICMPs.
return 0; return nullptr;
} }
Connection* conn = nullptr; Connection* conn = nullptr;
@ -1151,7 +1151,7 @@ Connection* NetSessions::NewConn(const ConnIDKey& k, double t, const ConnID* id,
break; break;
default: default:
reporter->InternalWarning("unknown transport protocol"); reporter->InternalWarning("unknown transport protocol");
return 0; return nullptr;
}; };
if ( tproto == TRANSPORT_TCP ) if ( tproto == TRANSPORT_TCP )
@ -1163,7 +1163,7 @@ Connection* NetSessions::NewConn(const ConnIDKey& k, double t, const ConnID* id,
bool flip = false; bool flip = false;
if ( ! WantConnection(src_h, dst_h, tproto, flags, flip) ) if ( ! WantConnection(src_h, dst_h, tproto, flags, flip) )
return 0; return nullptr;
Connection* conn = new Connection(this, k, t, id, flow_label, pkt, encapsulation); Connection* conn = new Connection(this, k, t, id, flow_label, pkt, encapsulation);
conn->SetTransport(tproto); conn->SetTransport(tproto);
@ -1175,11 +1175,11 @@ Connection* NetSessions::NewConn(const ConnIDKey& k, double t, const ConnID* id,
{ {
conn->Done(); conn->Done();
Unref(conn); Unref(conn);
return 0; return nullptr;
} }
if ( new_connection ) if ( new_connection )
conn->Event(new_connection, 0); conn->Event(new_connection, nullptr);
return conn; return conn;
} }

View file

@ -75,9 +75,9 @@ public:
void GetStats(SessionStats& s) const; void GetStats(SessionStats& s) const;
void Weird(const char* name, const Packet* pkt, void Weird(const char* name, const Packet* pkt,
const EncapsulationStack* encap = 0, const char* addl = ""); const EncapsulationStack* encap = nullptr, const char* addl = "");
void Weird(const char* name, const IP_Hdr* ip, void Weird(const char* name, const IP_Hdr* ip,
const EncapsulationStack* encap = 0, const char* addl = ""); const EncapsulationStack* encap = nullptr, const char* addl = "");
PacketFilter* GetPacketFilter() PacketFilter* GetPacketFilter()
{ {

View file

@ -61,22 +61,22 @@ VectorVal* BroSubstring::VecToPolicy(Vec* vec)
RecordType* sw_substring_type = RecordType* sw_substring_type =
internal_type("sw_substring")->AsRecordType(); internal_type("sw_substring")->AsRecordType();
if ( ! sw_substring_type ) if ( ! sw_substring_type )
return 0; return nullptr;
RecordType* sw_align_type = RecordType* sw_align_type =
internal_type("sw_align")->AsRecordType(); internal_type("sw_align")->AsRecordType();
if ( ! sw_align_type ) if ( ! sw_align_type )
return 0; return nullptr;
VectorType* sw_align_vec_type = VectorType* sw_align_vec_type =
internal_type("sw_align_vec")->AsVectorType(); internal_type("sw_align_vec")->AsVectorType();
if ( ! sw_align_vec_type ) if ( ! sw_align_vec_type )
return 0; return nullptr;
VectorVal* result = VectorVal* result =
new VectorVal(internal_type("sw_substring_vec")->AsVectorType()); new VectorVal(internal_type("sw_substring_vec")->AsVectorType());
if ( ! result ) if ( ! result )
return 0; return nullptr;
if ( vec ) if ( vec )
{ {
@ -235,9 +235,9 @@ public:
{ {
// Make sure access is in allowed range. // Make sure access is in allowed range.
if ( row < 0 || row >= _rows ) if ( row < 0 || row >= _rows )
return 0; return nullptr;
if ( col < 0 || col >= _cols ) if ( col < 0 || col >= _cols )
return 0; return nullptr;
return &(_nodes[row * _cols + col]); return &(_nodes[row * _cols + col]);
} }
@ -359,7 +359,7 @@ static void sw_collect_multiple(BroSubstring::Vec* result,
{ {
BroSubstring::Vec* old_al = *it; BroSubstring::Vec* old_al = *it;
if ( old_al == 0 ) if ( old_al == nullptr )
continue; continue;
for ( BroSubstring::VecIt it2 = old_al->begin(); for ( BroSubstring::VecIt it2 = old_al->begin();
@ -372,7 +372,7 @@ static void sw_collect_multiple(BroSubstring::Vec* result,
{ {
delete_each(new_al); delete_each(new_al);
delete new_al; delete new_al;
new_al = 0; new_al = nullptr;
goto end_loop; goto end_loop;
} }
@ -398,7 +398,7 @@ end_loop:
{ {
BroSubstring::Vec* al = *it; BroSubstring::Vec* al = *it;
if ( al == 0 ) if ( al == nullptr )
continue; continue;
for ( BroSubstring::VecIt it2 = al->begin(); for ( BroSubstring::VecIt it2 = al->begin();
@ -432,8 +432,8 @@ BroSubstring::Vec* smith_waterman(const BroString* s1, const BroString* s2,
byte_vec string2 = s2->Bytes(); byte_vec string2 = s2->Bytes();
SWNodeMatrix matrix(s1, s2); // dynamic programming matrix. SWNodeMatrix matrix(s1, s2); // dynamic programming matrix.
SWNode* node_max = 0; // pointer to the best score's node SWNode* node_max = nullptr; // pointer to the best score's node
SWNode* node_br_max = 0; // pointer to lowest-right matching node SWNode* node_br_max = nullptr; // pointer to lowest-right matching node
// The highest score in the matrix, globally. We initialize to 1 // The highest score in the matrix, globally. We initialize to 1
// because we are only interested in real scores (initializing to // because we are only interested in real scores (initializing to

View file

@ -339,7 +339,7 @@ void ProfileLogger::SegmentProfile(const char* name, const Location* loc,
SampleLogger::SampleLogger() SampleLogger::SampleLogger()
{ {
static TableType* load_sample_info = 0; static TableType* load_sample_info = nullptr;
if ( ! load_sample_info ) if ( ! load_sample_info )
load_sample_info = internal_type("load_sample_info")->AsTableType(); load_sample_info = internal_type("load_sample_info")->AsTableType();
@ -355,14 +355,14 @@ SampleLogger::~SampleLogger()
void SampleLogger::FunctionSeen(const Func* func) void SampleLogger::FunctionSeen(const Func* func)
{ {
Val* idx = new StringVal(func->Name()); Val* idx = new StringVal(func->Name());
load_samples->Assign(idx, 0); load_samples->Assign(idx, nullptr);
Unref(idx); Unref(idx);
} }
void SampleLogger::LocationSeen(const Location* loc) void SampleLogger::LocationSeen(const Location* loc)
{ {
Val* idx = new StringVal(loc->filename); Val* idx = new StringVal(loc->filename);
load_samples->Assign(idx, 0); load_samples->Assign(idx, nullptr);
Unref(idx); Unref(idx);
} }
@ -438,7 +438,7 @@ void PacketProfiler::ProfilePkt(double t, unsigned int bytes)
getrusage(RUSAGE_SELF, &res); getrusage(RUSAGE_SELF, &res);
gettimeofday(&ptimestamp, 0); gettimeofday(&ptimestamp, 0);
get_memory_usage(&last_mem, 0); get_memory_usage(&last_mem, nullptr);
last_Utime = res.ru_utime.tv_sec + res.ru_utime.tv_usec / 1e6; last_Utime = res.ru_utime.tv_sec + res.ru_utime.tv_usec / 1e6;
last_Stime = res.ru_stime.tv_sec + res.ru_stime.tv_usec / 1e6; last_Stime = res.ru_stime.tv_sec + res.ru_stime.tv_usec / 1e6;
last_Rtime = ptimestamp.tv_sec + ptimestamp.tv_usec / 1e6; last_Rtime = ptimestamp.tv_sec + ptimestamp.tv_usec / 1e6;
@ -462,7 +462,7 @@ void PacketProfiler::ProfilePkt(double t, unsigned int bytes)
ptimestamp.tv_sec + ptimestamp.tv_usec / 1e6; ptimestamp.tv_sec + ptimestamp.tv_usec / 1e6;
uint64_t curr_mem; uint64_t curr_mem;
get_memory_usage(&curr_mem, 0); get_memory_usage(&curr_mem, nullptr);
file->Write(fmt("%.06f %.03f %" PRIu64 " %" PRIu64 " %.03f %.03f %.03f %" PRIu64 "\n", file->Write(fmt("%.06f %.03f %" PRIu64 " %" PRIu64 " %.03f %.03f %.03f %" PRIu64 "\n",
t, time-last_timestamp, pkt_cnt, byte_cnt, t, time-last_timestamp, pkt_cnt, byte_cnt,

View file

@ -182,7 +182,7 @@ TraversalCode ExprListStmt::Traverse(TraversalCallback* cb) const
HANDLE_TC_STMT_POST(tc); HANDLE_TC_STMT_POST(tc);
} }
static BroFile* print_stdout = 0; static BroFile* print_stdout = nullptr;
static IntrusivePtr<EnumVal> lookup_enum_val(const char* module_name, const char* name) static IntrusivePtr<EnumVal> lookup_enum_val(const char* module_name, const char* name)
{ {
@ -629,7 +629,7 @@ SwitchStmt::SwitchStmt(IntrusivePtr<Expr> index, case_list* arg_cases)
NegExpr* ne = (NegExpr*)(expr); NegExpr* ne = (NegExpr*)(expr);
if ( ne->Op()->IsConst() ) if ( ne->Op()->IsConst() )
Unref(exprs.replace(j, new ConstExpr(ne->Eval(0)))); Unref(exprs.replace(j, new ConstExpr(ne->Eval(nullptr))));
} }
break; break;
@ -638,7 +638,7 @@ SwitchStmt::SwitchStmt(IntrusivePtr<Expr> index, case_list* arg_cases)
PosExpr* pe = (PosExpr*)(expr); PosExpr* pe = (PosExpr*)(expr);
if ( pe->Op()->IsConst() ) if ( pe->Op()->IsConst() )
Unref(exprs.replace(j, new ConstExpr(pe->Eval(0)))); Unref(exprs.replace(j, new ConstExpr(pe->Eval(nullptr))));
} }
break; break;
@ -648,7 +648,7 @@ SwitchStmt::SwitchStmt(IntrusivePtr<Expr> index, case_list* arg_cases)
if ( ne->Id()->IsConst() ) if ( ne->Id()->IsConst() )
{ {
auto v = ne->Eval(0); auto v = ne->Eval(nullptr);
if ( v ) if ( v )
Unref(exprs.replace(j, new ConstExpr(std::move(v)))); Unref(exprs.replace(j, new ConstExpr(std::move(v))));
@ -757,7 +757,7 @@ bool SwitchStmt::AddCaseLabelTypeMapping(ID* t, int idx)
std::pair<int, ID*> SwitchStmt::FindCaseLabelMatch(const Val* v) const std::pair<int, ID*> SwitchStmt::FindCaseLabelMatch(const Val* v) const
{ {
int label_idx = -1; int label_idx = -1;
ID* label_id = 0; ID* label_id = nullptr;
// Find matching expression cases. // Find matching expression cases.
if ( case_label_value_map.Length() ) if ( case_label_value_map.Length() )
@ -1065,7 +1065,7 @@ ForStmt::ForStmt(id_list* arg_loop_vars, IntrusivePtr<Expr> loop_expr)
: ExprStmt(STMT_FOR, std::move(loop_expr)) : ExprStmt(STMT_FOR, std::move(loop_expr))
{ {
loop_vars = arg_loop_vars; loop_vars = arg_loop_vars;
body = 0; body = nullptr;
if ( e->Type()->Tag() == TYPE_TABLE ) if ( e->Type()->Tag() == TYPE_TABLE )
{ {
@ -1090,7 +1090,7 @@ ForStmt::ForStmt(id_list* arg_loop_vars, IntrusivePtr<Expr> loop_expr)
{ {
add_local({NewRef{}, (*loop_vars)[i]}, add_local({NewRef{}, (*loop_vars)[i]},
{NewRef{}, ind_type}, INIT_NONE, {NewRef{}, ind_type}, INIT_NONE,
0, 0, VAR_REGULAR); nullptr, nullptr, VAR_REGULAR);
} }
} }
} }
@ -1106,7 +1106,7 @@ ForStmt::ForStmt(id_list* arg_loop_vars, IntrusivePtr<Expr> loop_expr)
BroType* t = (*loop_vars)[0]->Type(); BroType* t = (*loop_vars)[0]->Type();
if ( ! t ) if ( ! t )
add_local({NewRef{}, (*loop_vars)[0]}, base_type(TYPE_COUNT), add_local({NewRef{}, (*loop_vars)[0]}, base_type(TYPE_COUNT),
INIT_NONE, 0, 0, VAR_REGULAR); INIT_NONE, nullptr, nullptr, VAR_REGULAR);
else if ( ! IsIntegral(t->Tag()) ) else if ( ! IsIntegral(t->Tag()) )
{ {
@ -1127,7 +1127,7 @@ ForStmt::ForStmt(id_list* arg_loop_vars, IntrusivePtr<Expr> loop_expr)
if ( ! t ) if ( ! t )
add_local({NewRef{}, (*loop_vars)[0]}, add_local({NewRef{}, (*loop_vars)[0]},
base_type(TYPE_STRING), base_type(TYPE_STRING),
INIT_NONE, 0, 0, VAR_REGULAR); INIT_NONE, nullptr, nullptr, VAR_REGULAR);
else if ( t->Tag() != TYPE_STRING ) else if ( t->Tag() != TYPE_STRING )
{ {
@ -1158,7 +1158,7 @@ ForStmt::ForStmt(id_list* arg_loop_vars,
else else
{ {
add_local(value_var, {NewRef{}, yield_type}, INIT_NONE, add_local(value_var, {NewRef{}, yield_type}, INIT_NONE,
0, 0, VAR_REGULAR); nullptr, nullptr, VAR_REGULAR);
} }
} }
else else
@ -1471,7 +1471,7 @@ void ReturnStmt::Describe(ODesc* d) const
{ {
Stmt::Describe(d); Stmt::Describe(d);
if ( ! d->IsReadable() ) if ( ! d->IsReadable() )
d->Add(e != 0); d->Add(e != nullptr);
if ( e ) if ( e )
{ {
@ -1600,7 +1600,7 @@ IntrusivePtr<Val> EventBodyList::Exec(Frame* f, stmt_flow_type& flow) const
// Simulate a return so the hooks operate properly. // Simulate a return so the hooks operate properly.
stmt_flow_type ft = FLOW_RETURN; stmt_flow_type ft = FLOW_RETURN;
(void) post_execute_stmt(f->GetNextStmt(), f, 0, &ft); (void) post_execute_stmt(f->GetNextStmt(), f, nullptr, &ft);
return nullptr; return nullptr;
} }
@ -1656,7 +1656,7 @@ IntrusivePtr<Val> InitStmt::Exec(Frame* f, stmt_flow_type& flow) const
{ {
BroType* t = aggr->Type(); BroType* t = aggr->Type();
Val* v = 0; Val* v = nullptr;
switch ( t->Tag() ) { switch ( t->Tag() ) {
case TYPE_RECORD: case TYPE_RECORD:

View file

@ -41,13 +41,13 @@ Tag::Tag()
{ {
type = 0; type = 0;
subtype = 0; subtype = 0;
val = 0; val = nullptr;
} }
Tag::~Tag() Tag::~Tag()
{ {
Unref(val); Unref(val);
val = 0; val = nullptr;
} }
Tag& Tag::operator=(const Tag& other) Tag& Tag::operator=(const Tag& other)

View file

@ -12,7 +12,7 @@ class ID;
class TraversalCallback { class TraversalCallback {
public: public:
TraversalCallback() { current_scope = 0; } TraversalCallback() { current_scope = nullptr; }
virtual ~TraversalCallback() {} virtual ~TraversalCallback() {}
virtual TraversalCode PreFunction(const Func*) { return TC_CONTINUE; } virtual TraversalCode PreFunction(const Func*) { return TC_CONTINUE; }

View file

@ -130,10 +130,10 @@ Trigger::Trigger(Expr* arg_cond, Stmt* arg_body, Stmt* arg_timeout_stmts,
timeout_stmts = arg_timeout_stmts; timeout_stmts = arg_timeout_stmts;
timeout = arg_timeout; timeout = arg_timeout;
frame = arg_frame->Clone(); frame = arg_frame->Clone();
timer = 0; timer = nullptr;
delayed = false; delayed = false;
disabled = false; disabled = false;
attached = 0; attached = nullptr;
is_return = arg_is_return; is_return = arg_is_return;
location = arg_location; location = arg_location;
timeout_value = -1; timeout_value = -1;

View file

@ -129,7 +129,7 @@ protected:
*/ */
class EncapsulationStack { class EncapsulationStack {
public: public:
EncapsulationStack() : conns(0) EncapsulationStack() : conns(nullptr)
{} {}
EncapsulationStack(const EncapsulationStack& other) EncapsulationStack(const EncapsulationStack& other)
@ -137,7 +137,7 @@ public:
if ( other.conns ) if ( other.conns )
conns = new vector<EncapsulatingConn>(*(other.conns)); conns = new vector<EncapsulatingConn>(*(other.conns));
else else
conns = 0; conns = nullptr;
} }
EncapsulationStack& operator=(const EncapsulationStack& other) EncapsulationStack& operator=(const EncapsulationStack& other)
@ -150,7 +150,7 @@ public:
if ( other.conns ) if ( other.conns )
conns = new vector<EncapsulatingConn>(*(other.conns)); conns = new vector<EncapsulatingConn>(*(other.conns));
else else
conns = 0; conns = nullptr;
return *this; return *this;
} }

View file

@ -541,7 +541,7 @@ void FuncType::Describe(ODesc* d) const
{ {
d->Add(int(Tag())); d->Add(int(Tag()));
d->Add(flavor); d->Add(flavor);
d->Add(yield != 0); d->Add(yield != nullptr);
args->DescribeFields(d); args->DescribeFields(d);
if ( yield ) if ( yield )
yield->Describe(d); yield->Describe(d);
@ -648,7 +648,7 @@ bool RecordType::HasField(const char* field) const
BroType* RecordType::FieldType(const char* field) const BroType* RecordType::FieldType(const char* field) const
{ {
int offset = FieldOffset(field); int offset = FieldOffset(field);
return offset >= 0 ? FieldType(offset) : 0; return offset >= 0 ? FieldType(offset) : nullptr;
} }
BroType* RecordType::FieldType(int field) const BroType* RecordType::FieldType(int field) const
@ -783,7 +783,7 @@ IntrusivePtr<TableVal> RecordType::GetRecordFieldsVal(const RecordVal* rv) const
if ( fv ) if ( fv )
::Ref(fv); ::Ref(fv);
bool logged = (fd->attrs && fd->FindAttr(ATTR_LOG) != 0); bool logged = (fd->attrs && fd->FindAttr(ATTR_LOG) != nullptr);
auto nr = make_intrusive<RecordVal>(internal_type("record_field")->AsRecordType()); auto nr = make_intrusive<RecordVal>(internal_type("record_field")->AsRecordType());
@ -1575,10 +1575,10 @@ bool same_type(const BroType* t1, const BroType* t2, bool is_init, bool match_re
bool same_attrs(const Attributes* a1, const Attributes* a2) bool same_attrs(const Attributes* a1, const Attributes* a2)
{ {
if ( ! a1 ) if ( ! a1 )
return (a2 == 0); return (a2 == nullptr);
if ( ! a2 ) if ( ! a2 )
return (a1 == 0); return (a1 == nullptr);
return (*a1 == *a2); return (*a1 == *a2);
} }
@ -2023,7 +2023,7 @@ IntrusivePtr<BroType> init_type(Expr* init)
// Could be a record, a set, or a list of table elements. // Could be a record, a set, or a list of table elements.
Expr* e0 = el[0]; Expr* e0 = el[0];
if ( e0->IsRecordElement(0) ) if ( e0->IsRecordElement(nullptr) )
// ListExpr's know how to build a record from their // ListExpr's know how to build a record from their
// components. // components.
return init_list->InitType(); return init_list->InitType();
@ -2039,7 +2039,7 @@ IntrusivePtr<BroType> init_type(Expr* init)
for ( int i = 1; t && i < el.length(); ++i ) for ( int i = 1; t && i < el.length(); ++i )
{ {
auto el_t = el[i]->InitType(); auto el_t = el[i]->InitType();
BroType* ti = el_t ? reduce_type(el_t.get()) : 0; BroType* ti = el_t ? reduce_type(el_t.get()) : nullptr;
if ( ! ti ) if ( ! ti )
return nullptr; return nullptr;

View file

@ -304,12 +304,12 @@ public:
bool IsSet() const bool IsSet() const
{ {
return tag == TYPE_TABLE && (YieldType() == 0); return tag == TYPE_TABLE && (YieldType() == nullptr);
} }
bool IsTable() const bool IsTable() const
{ {
return tag == TYPE_TABLE && (YieldType() != 0); return tag == TYPE_TABLE && (YieldType() != nullptr);
} }
BroType* Ref() { ::Ref(this); return this; } BroType* Ref() { ::Ref(this); return this; }
@ -357,7 +357,7 @@ public:
const type_list* Types() const { return &types; } const type_list* Types() const { return &types; }
type_list* Types() { return &types; } type_list* Types() { return &types; }
bool IsPure() const { return pure_type != 0; } bool IsPure() const { return pure_type != nullptr; }
// Returns the underlying pure type, or nil if the list // Returns the underlying pure type, or nil if the list
// is not pure or is empty. // is not pure or is empty.
@ -485,12 +485,12 @@ protected:
class TypeDecl final { class TypeDecl final {
public: public:
TypeDecl(IntrusivePtr<BroType> t, const char* i, attr_list* attrs = 0, bool in_record = false); TypeDecl(IntrusivePtr<BroType> t, const char* i, attr_list* attrs = nullptr, bool in_record = false);
TypeDecl(const TypeDecl& other); TypeDecl(const TypeDecl& other);
~TypeDecl(); ~TypeDecl();
const Attr* FindAttr(attr_tag a) const const Attr* FindAttr(attr_tag a) const
{ return attrs ? attrs->FindAttr(a) : 0; } { return attrs ? attrs->FindAttr(a) : nullptr; }
void DescribeReST(ODesc* d, bool roles_only = false) const; void DescribeReST(ODesc* d, bool roles_only = false) const;
@ -547,19 +547,19 @@ public:
bool IsFieldDeprecated(int field) const bool IsFieldDeprecated(int field) const
{ {
const TypeDecl* decl = FieldDecl(field); const TypeDecl* decl = FieldDecl(field);
return decl && decl->FindAttr(ATTR_DEPRECATED) != 0; return decl && decl->FindAttr(ATTR_DEPRECATED) != nullptr;
} }
bool FieldHasAttr(int field, attr_tag at) const bool FieldHasAttr(int field, attr_tag at) const
{ {
const TypeDecl* decl = FieldDecl(field); const TypeDecl* decl = FieldDecl(field);
return decl && decl->FindAttr(at) != 0; return decl && decl->FindAttr(at) != nullptr;
} }
std::string GetFieldDeprecationWarning(int field, bool has_check) const; std::string GetFieldDeprecationWarning(int field, bool has_check) const;
protected: protected:
RecordType() { types = 0; } RecordType() { types = nullptr; }
int num_fields; int num_fields;
type_decl_list* types; type_decl_list* types;

View file

@ -28,7 +28,7 @@ public:
* Construct a UID of a given bit-length, optionally from given values. * Construct a UID of a given bit-length, optionally from given values.
* @see UID::Set * @see UID::Set
*/ */
explicit UID(bro_uint_t bits, const uint64_t* v = 0, size_t n = 0) explicit UID(bro_uint_t bits, const uint64_t* v = nullptr, size_t n = 0)
{ Set(bits, v, n); } { Set(bits, v, n); }
/** /**
@ -47,7 +47,7 @@ public:
* 64, then a value is truncated to bit in desired bit-length. * 64, then a value is truncated to bit in desired bit-length.
* @param n number of 64-bit elements in array pointed to by \a v. * @param n number of 64-bit elements in array pointed to by \a v.
*/ */
void Set(bro_uint_t bits, const uint64_t* v = 0, size_t n = 0); void Set(bro_uint_t bits, const uint64_t* v = nullptr, size_t n = 0);
/** /**
* Returns a base62 (characters 0-9, A-Z, a-z) representation of the UID. * Returns a base62 (characters 0-9, A-Z, a-z) representation of the UID.

View file

@ -48,7 +48,7 @@ Val::Val(Func* f)
static FileType* GetStringFileType() noexcept static FileType* GetStringFileType() noexcept
{ {
static FileType* string_file_type = 0; static FileType* string_file_type = nullptr;
if ( ! string_file_type ) if ( ! string_file_type )
string_file_type = new FileType(base_type(TYPE_STRING)); string_file_type = new FileType(base_type(TYPE_STRING));
return string_file_type; return string_file_type;
@ -366,13 +366,13 @@ void Val::ValDescribeReST(ODesc* d) const
#ifdef DEBUG #ifdef DEBUG
ID* Val::GetID() const ID* Val::GetID() const
{ {
return bound_id ? global_scope()->Lookup(bound_id) : 0; return bound_id ? global_scope()->Lookup(bound_id) : nullptr;
} }
void Val::SetID(ID* id) void Val::SetID(ID* id)
{ {
delete [] bound_id; delete [] bound_id;
bound_id = id ? copy_string(id->Name()) : 0; bound_id = id ? copy_string(id->Name()) : nullptr;
} }
#endif #endif
@ -1233,7 +1233,7 @@ TableVal* ListVal::ConvertToSet() const
TableVal* t = new TableVal(std::move(s)); TableVal* t = new TableVal(std::move(s));
for ( const auto& val : vals ) for ( const auto& val : vals )
t->Assign(val, 0); t->Assign(val, nullptr);
return t; return t;
} }
@ -1381,16 +1381,16 @@ TableVal::TableVal(IntrusivePtr<TableType> t, IntrusivePtr<Attributes> a) : Val(
void TableVal::Init(IntrusivePtr<TableType> t) void TableVal::Init(IntrusivePtr<TableType> t)
{ {
table_type = std::move(t); table_type = std::move(t);
expire_func = 0; expire_func = nullptr;
expire_time = 0; expire_time = nullptr;
expire_cookie = 0; expire_cookie = nullptr;
timer = 0; timer = nullptr;
def_val = 0; def_val = nullptr;
if ( table_type->IsSubNetIndex() ) if ( table_type->IsSubNetIndex() )
subnets = new PrefixTable; subnets = new PrefixTable;
else else
subnets = 0; subnets = nullptr;
table_hash = new CompositeHash(IntrusivePtr<TypeList>(NewRef{}, table_hash = new CompositeHash(IntrusivePtr<TypeList>(NewRef{},
table_type->Indices())); table_type->Indices()));
@ -1603,12 +1603,12 @@ bool TableVal::AddTo(Val* val, bool is_first_init, bool propagate_ops) const
if ( type->IsSet() ) if ( type->IsSet() )
{ {
if ( ! t->Assign(v->Value(), k, 0) ) if ( ! t->Assign(v->Value(), k, nullptr) )
return false; return false;
} }
else else
{ {
if ( ! t->Assign(0, k, {NewRef{}, v->Value()}) ) if ( ! t->Assign(nullptr, k, {NewRef{}, v->Value()}) )
return false; return false;
} }
} }
@ -1804,11 +1804,11 @@ IntrusivePtr<Val> TableVal::Default(Val* index)
auto coerce = make_intrusive<RecordCoerceExpr>( auto coerce = make_intrusive<RecordCoerceExpr>(
IntrusivePtr{NewRef{}, def_attr->AttrExpr()}, IntrusivePtr{NewRef{}, def_attr->AttrExpr()},
IntrusivePtr{NewRef{}, ytype->AsRecordType()}); IntrusivePtr{NewRef{}, ytype->AsRecordType()});
def_val = coerce->Eval(0); def_val = coerce->Eval(nullptr);
} }
else else
def_val = def_attr->AttrExpr()->Eval(0); def_val = def_attr->AttrExpr()->Eval(nullptr);
} }
if ( ! def_val ) if ( ! def_val )
@ -1942,7 +1942,7 @@ IntrusivePtr<TableVal> TableVal::LookupSubnetValues(const SubNetVal* search)
if ( entry && entry->Value() ) if ( entry && entry->Value() )
nt->Assign(s, {NewRef{}, entry->Value()}); nt->Assign(s, {NewRef{}, entry->Value()});
else else
nt->Assign(s, 0); // set nt->Assign(s, nullptr); // set
if ( entry ) if ( entry )
{ {
@ -2050,7 +2050,7 @@ void TableVal::CallChangeFunc(const Val* index, Val* old_value, OnChangeType tpe
IntrusivePtr<Val> TableVal::Delete(const Val* index) IntrusivePtr<Val> TableVal::Delete(const Val* index)
{ {
HashKey* k = ComputeHash(index); HashKey* k = ComputeHash(index);
TableEntryVal* v = k ? AsNonConstTable()->RemoveEntry(k) : 0; TableEntryVal* v = k ? AsNonConstTable()->RemoveEntry(k) : nullptr;
IntrusivePtr<Val> va{NewRef{}, v ? (v->Value() ? v->Value() : this) : nullptr}; IntrusivePtr<Val> va{NewRef{}, v ? (v->Value() ? v->Value() : this) : nullptr};
if ( subnets && ! subnets->Remove(index) ) if ( subnets && ! subnets->Remove(index) )
@ -2128,7 +2128,7 @@ ListVal* TableVal::ConvertToPureList() const
if ( tl->length() != 1 ) if ( tl->length() != 1 )
{ {
InternalWarning("bad index type in TableVal::ConvertToPureList"); InternalWarning("bad index type in TableVal::ConvertToPureList");
return 0; return nullptr;
} }
return ConvertToList((*tl)[0]->Tag()); return ConvertToList((*tl)[0]->Tag());
@ -2136,7 +2136,7 @@ ListVal* TableVal::ConvertToPureList() const
Attr* TableVal::FindAttr(attr_tag t) const Attr* TableVal::FindAttr(attr_tag t) const
{ {
return attrs ? attrs->FindAttr(t) : 0; return attrs ? attrs->FindAttr(t) : nullptr;
} }
void TableVal::Describe(ODesc* d) const void TableVal::Describe(ODesc* d) const
@ -2253,7 +2253,7 @@ bool TableVal::ExpandCompoundAndInit(val_list* vl, int k, IntrusivePtr<Val> new_
bool TableVal::CheckAndAssign(Val* index, IntrusivePtr<Val> new_val) bool TableVal::CheckAndAssign(Val* index, IntrusivePtr<Val> new_val)
{ {
Val* v = 0; Val* v = nullptr;
if ( subnets ) if ( subnets )
// We need an exact match here. // We need an exact match here.
v = (Val*) subnets->Lookup(index, true); v = (Val*) subnets->Lookup(index, true);
@ -2392,7 +2392,7 @@ void TableVal::DoExpire(double t)
if ( ! v ) if ( ! v )
{ {
expire_cookie = 0; expire_cookie = nullptr;
InitTimer(table_expire_interval); InitTimer(table_expire_interval);
} }
else else
@ -2419,7 +2419,7 @@ double TableVal::GetExpireTime()
if ( interval >= 0 ) if ( interval >= 0 )
return interval; return interval;
expire_time = 0; expire_time = nullptr;
if ( timer ) if ( timer )
timer_mgr->Cancel(timer); timer_mgr->Cancel(timer);
@ -2819,7 +2819,7 @@ IntrusivePtr<RecordVal> RecordVal::CoerceTo(RecordType* t, bool allow_orphaning)
if ( same_type(Type(), t) ) if ( same_type(Type(), t) )
return {NewRef{}, this}; return {NewRef{}, this};
return CoerceTo(t, 0, allow_orphaning); return CoerceTo(t, nullptr, allow_orphaning);
} }
IntrusivePtr<TableVal> RecordVal::GetRecordFieldsVal() const IntrusivePtr<TableVal> RecordVal::GetRecordFieldsVal() const
@ -2975,7 +2975,7 @@ bool VectorVal::Assign(unsigned int index, IntrusivePtr<Val> element)
! same_type(element->Type(), vector_type->YieldType(), false) ) ! same_type(element->Type(), vector_type->YieldType(), false) )
return false; return false;
Val* val_at_index = 0; Val* val_at_index = nullptr;
if ( index < val.vector_val->size() ) if ( index < val.vector_val->size() )
val_at_index = (*val.vector_val)[index]; val_at_index = (*val.vector_val)[index];

View file

@ -310,7 +310,7 @@ public:
// To be overridden by mutable derived class to enable change // To be overridden by mutable derived class to enable change
// notification. // notification.
virtual notifier::Modifiable* Modifiable() { return 0; } virtual notifier::Modifiable* Modifiable() { return nullptr; }
#ifdef DEBUG #ifdef DEBUG
// For debugging, we keep a reference to the global ID to which a // For debugging, we keep a reference to the global ID to which a
@ -804,7 +804,7 @@ public:
void ClearTimer(Timer* t) void ClearTimer(Timer* t)
{ {
if ( timer == t ) if ( timer == t )
timer = 0; timer = nullptr;
} }
HashKey* ComputeHash(const Val* index) const; HashKey* ComputeHash(const Val* index) const;
@ -843,7 +843,7 @@ protected:
IntrusivePtr<Val> Default(Val* index); IntrusivePtr<Val> Default(Val* index);
// Returns true if item expiration is enabled. // Returns true if item expiration is enabled.
bool ExpirationEnabled() { return expire_time != 0; } bool ExpirationEnabled() { return expire_time != nullptr; }
// Returns the expiration time defined by %{create,read,write}_expire // Returns the expiration time defined by %{create,read,write}_expire
// attribute, or -1 for unset/invalid values. In the invalid case, an // attribute, or -1 for unset/invalid values. In the invalid case, an

View file

@ -216,7 +216,7 @@ static void make_var(ID* id, IntrusivePtr<BroType> t, init_class c,
// For events, add a function value (without any body) here so that // For events, add a function value (without any body) here so that
// we can later access the ID even if no implementations have been // we can later access the ID even if no implementations have been
// defined. // defined.
Func* f = new BroFunc(id, 0, 0, 0, 0); Func* f = new BroFunc(id, nullptr, nullptr, 0, 0);
id->SetVal(make_intrusive<Val>(f)); id->SetVal(make_intrusive<Val>(f));
} }
} }
@ -305,7 +305,7 @@ static void transfer_arg_defaults(RecordType* args, RecordType* recv)
TypeDecl* args_i = args->FieldDecl(i); TypeDecl* args_i = args->FieldDecl(i);
TypeDecl* recv_i = recv->FieldDecl(i); TypeDecl* recv_i = recv->FieldDecl(i);
Attr* def = args_i->attrs ? args_i->attrs->FindAttr(ATTR_DEFAULT) : 0; Attr* def = args_i->attrs ? args_i->attrs->FindAttr(ATTR_DEFAULT) : nullptr;
if ( ! def ) if ( ! def )
continue; continue;
@ -379,7 +379,7 @@ void begin_func(ID* id, const char* module_name, function_flavor flavor,
case FUNC_FLAVOR_HOOK: case FUNC_FLAVOR_HOOK:
if ( is_redef ) if ( is_redef )
// Clear out value so it will be replaced. // Clear out value so it will be replaced.
id->SetVal(0); id->SetVal(nullptr);
break; break;
case FUNC_FLAVOR_FUNCTION: case FUNC_FLAVOR_FUNCTION:

View file

@ -124,11 +124,11 @@ void Analyzer::CtorInit(const Tag& arg_tag, Connection* arg_conn)
skip = false; skip = false;
finished = false; finished = false;
removing = false; removing = false;
parent = 0; parent = nullptr;
orig_supporters = 0; orig_supporters = nullptr;
resp_supporters = 0; resp_supporters = nullptr;
signature = 0; signature = nullptr;
output_handler = 0; output_handler = nullptr;
} }
Analyzer::~Analyzer() Analyzer::~Analyzer()
@ -138,7 +138,7 @@ Analyzer::~Analyzer()
LOOP_OVER_CHILDREN(i) LOOP_OVER_CHILDREN(i)
delete *i; delete *i;
SupportAnalyzer* next = 0; SupportAnalyzer* next = nullptr;
for ( SupportAnalyzer* a = orig_supporters; a; a = next ) for ( SupportAnalyzer* a = orig_supporters; a; a = next )
{ {
@ -501,7 +501,7 @@ Analyzer* Analyzer::FindChild(ID arg_id)
return child; return child;
} }
return 0; return nullptr;
} }
Analyzer* Analyzer::FindChild(Tag arg_tag) Analyzer* Analyzer::FindChild(Tag arg_tag)
@ -523,13 +523,13 @@ Analyzer* Analyzer::FindChild(Tag arg_tag)
return child; return child;
} }
return 0; return nullptr;
} }
Analyzer* Analyzer::FindChild(const char* name) Analyzer* Analyzer::FindChild(const char* name)
{ {
Tag tag = analyzer_mgr->GetComponentTag(name); Tag tag = analyzer_mgr->GetComponentTag(name);
return tag ? FindChild(tag) : 0; return tag ? FindChild(tag) : nullptr;
} }
void Analyzer::DeleteChild(analyzer_list::iterator i) void Analyzer::DeleteChild(analyzer_list::iterator i)
@ -570,7 +570,7 @@ void Analyzer::AddSupportAnalyzer(SupportAnalyzer* analyzer)
analyzer->IsOrig() ? &orig_supporters : &resp_supporters; analyzer->IsOrig() ? &orig_supporters : &resp_supporters;
// Find end of the list. // Find end of the list.
SupportAnalyzer* prev = 0; SupportAnalyzer* prev = nullptr;
SupportAnalyzer* s; SupportAnalyzer* s;
for ( s = *head; s; prev = s, s = s->sibling ) for ( s = *head; s; prev = s, s = s->sibling )
; ;
@ -621,7 +621,7 @@ SupportAnalyzer* Analyzer::FirstSupportAnalyzer(bool orig)
SupportAnalyzer* sa = orig ? orig_supporters : resp_supporters; SupportAnalyzer* sa = orig ? orig_supporters : resp_supporters;
if ( ! sa ) if ( ! sa )
return 0; return nullptr;
if ( ! sa->Removing() ) if ( ! sa->Removing() )
return sa; return sa;
@ -922,7 +922,7 @@ void TransportLayerAnalyzer::SetContentsFile(unsigned int /* direction */,
BroFile* TransportLayerAnalyzer::GetContentsFile(unsigned int /* direction */) const BroFile* TransportLayerAnalyzer::GetContentsFile(unsigned int /* direction */) const
{ {
reporter->Error("analyzer type does not support writing to a contents file"); reporter->Error("analyzer type does not support writing to a contents file");
return 0; return nullptr;
} }
void TransportLayerAnalyzer::PacketContents(const u_char* data, int len) void TransportLayerAnalyzer::PacketContents(const u_char* data, int len)

View file

@ -152,7 +152,7 @@ public:
* @param caplen The packet's capture length, if available. * @param caplen The packet's capture length, if available.
*/ */
void NextPacket(int len, const u_char* data, bool is_orig, void NextPacket(int len, const u_char* data, bool is_orig,
uint64_t seq = -1, const IP_Hdr* ip = 0, int caplen = 0); uint64_t seq = -1, const IP_Hdr* ip = nullptr, int caplen = 0);
/** /**
* Passes stream input to the analyzer for processing. The analyzer * Passes stream input to the analyzer for processing. The analyzer
@ -528,7 +528,7 @@ public:
* @param len If \a data is given, the length of it. * @param len If \a data is given, the length of it.
*/ */
virtual void ProtocolViolation(const char* reason, virtual void ProtocolViolation(const char* reason,
const char* data = 0, int len = 0); const char* data = nullptr, int len = 0);
/** /**
* Returns true if ProtocolConfirmation() has been called at least * Returns true if ProtocolConfirmation() has been called at least
@ -558,13 +558,13 @@ public:
* Convenience function that forwards directly to the corresponding * Convenience function that forwards directly to the corresponding
* Connection::Event(). * Connection::Event().
*/ */
void Event(EventHandlerPtr f, const char* name = 0); void Event(EventHandlerPtr f, const char* name = nullptr);
/** /**
* Convenience function that forwards directly to the corresponding * Convenience function that forwards directly to the corresponding
* Connection::Event(). * Connection::Event().
*/ */
void Event(EventHandlerPtr f, Val* v1, Val* v2 = 0); void Event(EventHandlerPtr f, Val* v1, Val* v2 = nullptr);
/** /**
* Convenience function that forwards directly to * Convenience function that forwards directly to
@ -796,7 +796,7 @@ public:
* connection originator side, and otherwise for the responder side. * connection originator side, and otherwise for the responder side.
*/ */
SupportAnalyzer(const char* name, Connection* conn, bool arg_orig) SupportAnalyzer(const char* name, Connection* conn, bool arg_orig)
: Analyzer(name, conn) { orig = arg_orig; sibling = 0; } : Analyzer(name, conn) { orig = arg_orig; sibling = nullptr; }
/** /**
* Destructor. * Destructor.
@ -879,7 +879,7 @@ public:
* @param conn The connection the analyzer is associated with. * @param conn The connection the analyzer is associated with.
*/ */
TransportLayerAnalyzer(const char* name, Connection* conn) TransportLayerAnalyzer(const char* name, Connection* conn)
: Analyzer(name, conn) { pia = 0; } : Analyzer(name, conn) { pia = nullptr; }
/** /**
* Overridden from parent class. * Overridden from parent class.

View file

@ -292,17 +292,17 @@ Analyzer* Manager::InstantiateAnalyzer(const Tag& tag, Connection* conn)
if ( ! c ) if ( ! c )
{ {
reporter->InternalWarning("request to instantiate unknown analyzer"); reporter->InternalWarning("request to instantiate unknown analyzer");
return 0; return nullptr;
} }
if ( ! c->Enabled() ) if ( ! c->Enabled() )
return 0; return nullptr;
if ( ! c->Factory() ) if ( ! c->Factory() )
{ {
reporter->InternalWarning("analyzer %s cannot be instantiated dynamically", reporter->InternalWarning("analyzer %s cannot be instantiated dynamically",
GetComponentName(tag).c_str()); GetComponentName(tag).c_str());
return 0; return nullptr;
} }
Analyzer* a = c->Factory()(conn); Analyzer* a = c->Factory()(conn);
@ -310,7 +310,7 @@ Analyzer* Manager::InstantiateAnalyzer(const Tag& tag, Connection* conn)
if ( ! a ) if ( ! a )
{ {
reporter->InternalWarning("analyzer instantiation failed"); reporter->InternalWarning("analyzer instantiation failed");
return 0; return nullptr;
} }
a->SetAnalyzerTag(tag); a->SetAnalyzerTag(tag);
@ -321,12 +321,12 @@ Analyzer* Manager::InstantiateAnalyzer(const Tag& tag, Connection* conn)
Analyzer* Manager::InstantiateAnalyzer(const char* name, Connection* conn) Analyzer* Manager::InstantiateAnalyzer(const char* name, Connection* conn)
{ {
Tag tag = GetComponentTag(name); Tag tag = GetComponentTag(name);
return tag ? InstantiateAnalyzer(tag, conn) : 0; return tag ? InstantiateAnalyzer(tag, conn) : nullptr;
} }
Manager::tag_set* Manager::LookupPort(TransportProto proto, uint32_t port, bool add_if_not_found) Manager::tag_set* Manager::LookupPort(TransportProto proto, uint32_t port, bool add_if_not_found)
{ {
analyzer_map_by_port* m = 0; analyzer_map_by_port* m = nullptr;
switch ( proto ) { switch ( proto ) {
case TRANSPORT_TCP: case TRANSPORT_TCP:
@ -339,7 +339,7 @@ Manager::tag_set* Manager::LookupPort(TransportProto proto, uint32_t port, bool
default: default:
reporter->InternalWarning("unsupported transport protocol in analyzer::Manager::LookupPort"); reporter->InternalWarning("unsupported transport protocol in analyzer::Manager::LookupPort");
return 0; return nullptr;
} }
analyzer_map_by_port::const_iterator i = m->find(port); analyzer_map_by_port::const_iterator i = m->find(port);
@ -348,7 +348,7 @@ Manager::tag_set* Manager::LookupPort(TransportProto proto, uint32_t port, bool
return i->second; return i->second;
if ( ! add_if_not_found ) if ( ! add_if_not_found )
return 0; return nullptr;
tag_set* l = new tag_set; tag_set* l = new tag_set;
m->insert(std::make_pair(port, l)); m->insert(std::make_pair(port, l));
@ -362,11 +362,11 @@ Manager::tag_set* Manager::LookupPort(PortVal* val, bool add_if_not_found)
bool Manager::BuildInitialAnalyzerTree(Connection* conn) bool Manager::BuildInitialAnalyzerTree(Connection* conn)
{ {
tcp::TCP_Analyzer* tcp = 0; tcp::TCP_Analyzer* tcp = nullptr;
udp::UDP_Analyzer* udp = 0; udp::UDP_Analyzer* udp = nullptr;
icmp::ICMP_Analyzer* icmp = 0; icmp::ICMP_Analyzer* icmp = nullptr;
TransportLayerAnalyzer* root = 0; TransportLayerAnalyzer* root = nullptr;
pia::PIA* pia = 0; pia::PIA* pia = nullptr;
bool check_port = false; bool check_port = false;
switch ( conn->ConnTransport() ) { switch ( conn->ConnTransport() ) {
@ -628,7 +628,7 @@ bool Manager::ApplyScheduledAnalyzers(Connection* conn, bool init, TransportLaye
EnumVal* tag = it->AsEnumVal(); EnumVal* tag = it->AsEnumVal();
Ref(tag); Ref(tag);
conn->Event(scheduled_analyzer_applied, 0, tag); conn->Event(scheduled_analyzer_applied, nullptr, tag);
DBG_ANALYZER_ARGS(conn, "activated %s analyzer as scheduled", DBG_ANALYZER_ARGS(conn, "activated %s analyzer as scheduled",
analyzer_mgr->GetComponentName(*it).c_str()); analyzer_mgr->GetComponentName(*it).c_str());

View file

@ -311,7 +311,7 @@ public:
* *
* @return True if at least one scheduled analyzer was found. * @return True if at least one scheduled analyzer was found.
*/ */
bool ApplyScheduledAnalyzers(Connection* conn, bool init_and_event = true, TransportLayerAnalyzer* parent = 0); bool ApplyScheduledAnalyzers(Connection* conn, bool init_and_event = true, TransportLayerAnalyzer* parent = nullptr);
/** /**
* Schedules a particular analyzer for an upcoming connection. Once * Schedules a particular analyzer for an upcoming connection. Once

View file

@ -15,7 +15,7 @@
using namespace analyzer::bittorrent; using namespace analyzer::bittorrent;
static TableType* bt_tracker_headers = 0; static TableType* bt_tracker_headers = nullptr;
static RecordType* bittorrent_peer; static RecordType* bittorrent_peer;
static TableType* bittorrent_peer_set; static TableType* bittorrent_peer_set;
static RecordType* bittorrent_benc_value; static RecordType* bittorrent_benc_value;
@ -44,7 +44,7 @@ BitTorrentTracker_Analyzer::BitTorrentTracker_Analyzer(Connection* c)
req_buf[sizeof(req_buf) - 1] = 0; req_buf[sizeof(req_buf) - 1] = 0;
req_buf_pos = req_buf; req_buf_pos = req_buf;
req_buf_len = 0; req_buf_len = 0;
req_val_uri = 0; req_val_uri = nullptr;
req_val_headers = new TableVal({NewRef{}, bt_tracker_headers}); req_val_headers = new TableVal({NewRef{}, bt_tracker_headers});
res_state = BTT_RES_STATUS; res_state = BTT_RES_STATUS;
@ -230,16 +230,16 @@ void BitTorrentTracker_Analyzer::InitBencParser(void)
benc_count.clear(); benc_count.clear();
benc_state = BENC_STATE_EMPTY; benc_state = BENC_STATE_EMPTY;
benc_raw = 0; benc_raw = nullptr;
benc_raw_type = BENC_TYPE_NONE; benc_raw_type = BENC_TYPE_NONE;
benc_raw_len = 0; benc_raw_len = 0;
benc_key = 0; benc_key = nullptr;
benc_key_len = 0; benc_key_len = 0;
benc_strlen = 0; benc_strlen = nullptr;
benc_str = 0; benc_str = nullptr;
benc_str_len = 0; benc_str_len = 0;
benc_str_have = 0; benc_str_have = 0;
benc_int = 0; benc_int = nullptr;
benc_int_val = 0; benc_int_val = 0;
} }
@ -353,8 +353,8 @@ void BitTorrentTracker_Analyzer::EmitRequest(void)
IntrusivePtr{AdoptRef{}, req_val_headers} IntrusivePtr{AdoptRef{}, req_val_headers}
); );
req_val_uri = 0; req_val_uri = nullptr;
req_val_headers = 0; req_val_headers = nullptr;
} }
bool BitTorrentTracker_Analyzer::ParseResponse(char* line) bool BitTorrentTracker_Analyzer::ParseResponse(char* line)
@ -406,7 +406,7 @@ bool BitTorrentTracker_Analyzer::ParseResponse(char* line)
IntrusivePtr{AdoptRef{}, val_mgr->GetCount(res_status)}, IntrusivePtr{AdoptRef{}, val_mgr->GetCount(res_status)},
IntrusivePtr{AdoptRef{}, res_val_headers} IntrusivePtr{AdoptRef{}, res_val_headers}
); );
res_val_headers = 0; res_val_headers = nullptr;
res_buf_pos = res_buf + res_buf_len; res_buf_pos = res_buf + res_buf_len;
res_state = BTT_RES_DONE; res_state = BTT_RES_DONE;
} }
@ -481,7 +481,7 @@ void BitTorrentTracker_Analyzer::ResponseBenc(int name_len, char* name,
RecordVal* peer = new RecordVal(bittorrent_peer); RecordVal* peer = new RecordVal(bittorrent_peer);
peer->Assign(0, make_intrusive<AddrVal>(ad)); peer->Assign(0, make_intrusive<AddrVal>(ad));
peer->Assign(1, val_mgr->GetPort(pt, TRANSPORT_TCP)); peer->Assign(1, val_mgr->GetPort(pt, TRANSPORT_TCP));
res_val_peers->Assign(peer, 0); res_val_peers->Assign(peer, nullptr);
Unref(peer); Unref(peer);
} }
@ -617,9 +617,9 @@ int BitTorrentTracker_Analyzer::ResponseParseBenc(void)
ResponseBenc(benc_key_len, benc_key, ResponseBenc(benc_key_len, benc_key,
benc_raw_type, benc_raw_type,
benc_raw_len, benc_raw); benc_raw_len, benc_raw);
benc_key = 0; benc_key = nullptr;
benc_key_len = 0; benc_key_len = 0;
benc_raw = 0; benc_raw = nullptr;
benc_raw_len = 0; benc_raw_len = 0;
benc_raw_type = BENC_TYPE_NONE; benc_raw_type = BENC_TYPE_NONE;
} }
@ -686,7 +686,7 @@ int BitTorrentTracker_Analyzer::ResponseParseBenc(void)
ResponseBenc(benc_key_len, ResponseBenc(benc_key_len,
benc_key, BENC_TYPE_INT, benc_key, BENC_TYPE_INT,
benc_int_val); benc_int_val);
benc_key = 0; benc_key = nullptr;
benc_key_len = 0; benc_key_len = 0;
} }
} }
@ -764,7 +764,7 @@ int BitTorrentTracker_Analyzer::ResponseParseBenc(void)
BENC_TYPE_STR, BENC_TYPE_STR,
benc_str_len, benc_str); benc_str_len, benc_str);
benc_key_len = 0; benc_key_len = 0;
benc_key = 0; benc_key = nullptr;
} }
if ( ! benc_str_len ) if ( ! benc_str_len )
@ -796,7 +796,7 @@ void BitTorrentTracker_Analyzer::EmitResponse(void)
IntrusivePtr{AdoptRef{}, res_val_benc} IntrusivePtr{AdoptRef{}, res_val_benc}
); );
res_val_headers = 0; res_val_headers = nullptr;
res_val_peers = 0; res_val_peers = nullptr;
res_val_benc = 0; res_val_benc = nullptr;
} }

View file

@ -7,7 +7,7 @@ static analyzer::Analyzer* GetConnsizeAnalyzer(Val* cid)
{ {
Connection* c = sessions->FindConnection(cid); Connection* c = sessions->FindConnection(cid);
if ( ! c ) if ( ! c )
return 0; return nullptr;
analyzer::Analyzer* a = c->FindAnalyzer("CONNSIZE"); analyzer::Analyzer* a = c->FindAnalyzer("CONNSIZE");
if ( ! a ) if ( ! a )

View file

@ -545,7 +545,7 @@ bool DNS_Interpreter::ParseRR_Name(DNS_MsgInfo* msg,
default: default:
analyzer->Conn()->Internal("DNS_RR_bad_name"); analyzer->Conn()->Internal("DNS_RR_bad_name");
reply_event = 0; reply_event = nullptr;
} }
if ( reply_event && ! msg->skip_event ) if ( reply_event && ! msg->skip_event )
@ -757,7 +757,7 @@ bool DNS_Interpreter::ParseRR_TSIG(DNS_MsgInfo* msg,
ExtractOctets(data, len, dns_TSIG_addl ? &request_MAC : nullptr); ExtractOctets(data, len, dns_TSIG_addl ? &request_MAC : nullptr);
unsigned int orig_id = ExtractShort(data, len); unsigned int orig_id = ExtractShort(data, len);
unsigned int rr_error = ExtractShort(data, len); unsigned int rr_error = ExtractShort(data, len);
ExtractOctets(data, len, 0); // Other Data ExtractOctets(data, len, nullptr); // Other Data
if ( dns_TSIG_addl ) if ( dns_TSIG_addl )
{ {
@ -1256,7 +1256,7 @@ static StringVal* extract_char_string(analyzer::Analyzer* analyzer,
const u_char*& data, int& len, int& rdlen) const u_char*& data, int& len, int& rdlen)
{ {
if ( rdlen <= 0 ) if ( rdlen <= 0 )
return 0; return nullptr;
uint8_t str_size = data[0]; uint8_t str_size = data[0];
@ -1267,7 +1267,7 @@ static StringVal* extract_char_string(analyzer::Analyzer* analyzer,
if ( str_size > rdlen ) if ( str_size > rdlen )
{ {
analyzer->Weird("DNS_TXT_char_str_past_rdlen"); analyzer->Weird("DNS_TXT_char_str_past_rdlen");
return 0; return nullptr;
} }
StringVal* rval = new StringVal(str_size, StringVal* rval = new StringVal(str_size,
@ -1428,7 +1428,7 @@ DNS_MsgInfo::DNS_MsgInfo(DNS_RawMsgHdr* hdr, int arg_is_query)
id = ntohs(hdr->id); id = ntohs(hdr->id);
is_query = arg_is_query; is_query = arg_is_query;
query_name = 0; query_name = nullptr;
atype = TYPE_ALL; atype = TYPE_ALL;
aclass = 0; aclass = 0;
ttl = 0; ttl = 0;
@ -1612,7 +1612,7 @@ Contents_DNS::Contents_DNS(Connection* conn, bool orig,
{ {
interp = arg_interp; interp = arg_interp;
msg_buf = 0; msg_buf = nullptr;
buf_n = buf_len = msg_size = 0; buf_n = buf_len = msg_size = 0;
state = DNS_LEN_HI; state = DNS_LEN_HI;
} }
@ -1685,7 +1685,7 @@ void Contents_DNS::DeliverStream(int len, const u_char* data, bool orig)
// Haven't filled up the message buffer yet, no more to do. // Haven't filled up the message buffer yet, no more to do.
return; return;
ForwardPacket(msg_size, msg_buf, orig, -1, 0, 0); ForwardPacket(msg_size, msg_buf, orig, -1, nullptr, 0);
buf_n = 0; buf_n = 0;
state = DNS_LEN_HI; state = DNS_LEN_HI;
@ -1699,7 +1699,7 @@ DNS_Analyzer::DNS_Analyzer(Connection* conn)
: tcp::TCP_ApplicationAnalyzer("DNS", conn) : tcp::TCP_ApplicationAnalyzer("DNS", conn)
{ {
interp = new DNS_Interpreter(this); interp = new DNS_Interpreter(this);
contents_dns_orig = contents_dns_resp = 0; contents_dns_orig = contents_dns_resp = nullptr;
if ( Conn()->ConnTransport() == TRANSPORT_TCP ) if ( Conn()->ConnTransport() == TRANSPORT_TCP )
{ {

View file

@ -12,7 +12,7 @@ public:
plugin::Configuration Configure() override plugin::Configuration Configure() override
{ {
AddComponent(new ::analyzer::Component("DNS", ::analyzer::dns::DNS_Analyzer::Instantiate)); AddComponent(new ::analyzer::Component("DNS", ::analyzer::dns::DNS_Analyzer::Instantiate));
AddComponent(new ::analyzer::Component("Contents_DNS", 0)); AddComponent(new ::analyzer::Component("Contents_DNS", nullptr));
plugin::Configuration config; plugin::Configuration config;
config.name = "Zeek::DNS"; config.name = "Zeek::DNS";

View file

@ -60,7 +60,7 @@ void Finger_Analyzer::DeliverStream(int length, const u_char* data, bool is_orig
assert(line <= end_of_line); assert(line <= end_of_line);
size_t n = end_of_line >= line ? end_of_line - line : 0; // just to be sure if assertions aren't on. size_t n = end_of_line >= line ? end_of_line - line : 0; // just to be sure if assertions aren't on.
const char* at = reinterpret_cast<const char*>(memchr(line, '@', n)); const char* at = reinterpret_cast<const char*>(memchr(line, '@', n));
const char* host = 0; const char* host = nullptr;
if ( ! at ) if ( ! at )
at = host = end_of_line; at = host = end_of_line;
else else

View file

@ -204,7 +204,7 @@ void FTP_ADAT_Analyzer::DeliverStream(int len, const u_char* data, bool orig)
const char* line = (const char*) data; const char* line = (const char*) data;
const char* end_of_line = line + len; const char* end_of_line = line + len;
BroString* decoded_adat = 0; BroString* decoded_adat = nullptr;
if ( orig ) if ( orig )
{ {
@ -217,7 +217,7 @@ void FTP_ADAT_Analyzer::DeliverStream(int len, const u_char* data, bool orig)
{ {
line = skip_whitespace(line + cmd_len, end_of_line); line = skip_whitespace(line + cmd_len, end_of_line);
StringVal encoded(end_of_line - line, line); StringVal encoded(end_of_line - line, line);
decoded_adat = decode_base64(encoded.AsString(), 0, Conn()); decoded_adat = decode_base64(encoded.AsString(), nullptr, Conn());
if ( first_token ) if ( first_token )
{ {
@ -247,7 +247,7 @@ void FTP_ADAT_Analyzer::DeliverStream(int len, const u_char* data, bool orig)
// Doesn't look like TLS/SSL, so done analyzing. // Doesn't look like TLS/SSL, so done analyzing.
done = true; done = true;
delete decoded_adat; delete decoded_adat;
decoded_adat = 0; decoded_adat = nullptr;
} }
} }
@ -292,7 +292,7 @@ void FTP_ADAT_Analyzer::DeliverStream(int len, const u_char* data, bool orig)
{ {
line += 5; line += 5;
StringVal encoded(end_of_line - line, line); StringVal encoded(end_of_line - line, line);
decoded_adat = decode_base64(encoded.AsString(), 0, Conn()); decoded_adat = decode_base64(encoded.AsString(), nullptr, Conn());
} }
break; break;

View file

@ -12,7 +12,7 @@ public:
plugin::Configuration Configure() override plugin::Configuration Configure() override
{ {
AddComponent(new ::analyzer::Component("FTP", ::analyzer::ftp::FTP_Analyzer::Instantiate)); AddComponent(new ::analyzer::Component("FTP", ::analyzer::ftp::FTP_Analyzer::Instantiate));
AddComponent(new ::analyzer::Component("FTP_ADAT", 0)); AddComponent(new ::analyzer::Component("FTP_ADAT", nullptr));
plugin::Configuration config; plugin::Configuration config;
config.name = "Zeek::FTP"; config.name = "Zeek::FTP";

View file

@ -40,7 +40,7 @@ Gnutella_Analyzer::Gnutella_Analyzer(Connection* conn)
new_state = 0; new_state = 0;
sent_establish = 0; sent_establish = 0;
ms = 0; ms = nullptr;
orig_msg_state = new GnutellaMsgState(); orig_msg_state = new GnutellaMsgState();
resp_msg_state = new GnutellaMsgState(); resp_msg_state = new GnutellaMsgState();

View file

@ -48,7 +48,7 @@ HTTP_Entity::HTTP_Entity(HTTP_Message *arg_message, MIME_Entity* parent_entity,
header_length = 0; header_length = 0;
deliver_body = true; deliver_body = true;
encoding = IDENTITY; encoding = IDENTITY;
zip = 0; zip = nullptr;
is_partial_content = false; is_partial_content = false;
offset = 0; offset = 0;
instance_length = -1; // unspecified instance_length = -1; // unspecified
@ -67,7 +67,7 @@ void HTTP_Entity::EndOfData()
{ {
zip->Done(); zip->Done();
delete zip; delete zip;
zip = 0; zip = nullptr;
encoding = IDENTITY; encoding = IDENTITY;
} }
@ -114,7 +114,7 @@ void HTTP_Entity::Deliver(int len, const char* data, bool trailing_CRLF)
switch ( chunked_transfer_state ) { switch ( chunked_transfer_state ) {
case EXPECT_CHUNK_SIZE: case EXPECT_CHUNK_SIZE:
ASSERT(trailing_CRLF); ASSERT(trailing_CRLF);
if ( ! atoi_n(len, data, 0, 16, expect_data_length) ) if ( ! atoi_n(len, data, nullptr, 16, expect_data_length) )
{ {
http_message->Weird("HTTP_bad_chunk_size"); http_message->Weird("HTTP_bad_chunk_size");
expect_data_length = 0; expect_data_length = 0;
@ -365,7 +365,7 @@ void HTTP_Entity::SubmitHeader(mime::MIME_Header* h)
if ( ! mime::is_null_data_chunk(vt) ) if ( ! mime::is_null_data_chunk(vt) )
{ {
int64_t n; int64_t n;
if ( atoi_n(vt.length, vt.data, 0, 10, n) ) if ( atoi_n(vt.length, vt.data, nullptr, 10, n) )
{ {
content_length = n; content_length = n;
@ -427,8 +427,8 @@ void HTTP_Entity::SubmitHeader(mime::MIME_Header* h)
instance_length_str.c_str()); instance_length_str.c_str());
int64_t f, l; int64_t f, l;
atoi_n(first_byte_pos.size(), first_byte_pos.c_str(), 0, 10, f); atoi_n(first_byte_pos.size(), first_byte_pos.c_str(), nullptr, 10, f);
atoi_n(last_byte_pos.size(), last_byte_pos.c_str(), 0, 10, l); atoi_n(last_byte_pos.size(), last_byte_pos.c_str(), nullptr, 10, l);
int64_t len = l - f + 1; int64_t len = l - f + 1;
if ( DEBUG_http ) if ( DEBUG_http )
@ -439,7 +439,7 @@ void HTTP_Entity::SubmitHeader(mime::MIME_Header* h)
if ( instance_length_str != "*" ) if ( instance_length_str != "*" )
{ {
if ( ! atoi_n(instance_length_str.size(), if ( ! atoi_n(instance_length_str.size(),
instance_length_str.c_str(), 0, 10, instance_length_str.c_str(), nullptr, 10,
instance_length) ) instance_length) )
instance_length = 0; instance_length = 0;
} }
@ -596,9 +596,9 @@ HTTP_Message::HTTP_Message(HTTP_Analyzer* arg_analyzer,
content_line = arg_cl; content_line = arg_cl;
is_orig = arg_is_orig; is_orig = arg_is_orig;
current_entity = 0; current_entity = nullptr;
top_level = new HTTP_Entity(this, 0, expect_body); top_level = new HTTP_Entity(this, nullptr, expect_body);
entity_data_buffer = 0; entity_data_buffer = nullptr;
BeginEntity(top_level); BeginEntity(top_level);
start_time = network_time; start_time = network_time;
@ -837,20 +837,20 @@ HTTP_Analyzer::HTTP_Analyzer(Connection* conn)
keep_alive = 0; keep_alive = 0;
connection_close = 0; connection_close = 0;
request_message = reply_message = 0; request_message = reply_message = nullptr;
request_state = EXPECT_REQUEST_LINE; request_state = EXPECT_REQUEST_LINE;
reply_state = EXPECT_REPLY_LINE; reply_state = EXPECT_REPLY_LINE;
request_ongoing = 0; request_ongoing = 0;
request_method = request_URI = 0; request_method = request_URI = nullptr;
unescaped_URI = 0; unescaped_URI = nullptr;
reply_ongoing = 0; reply_ongoing = 0;
reply_code = 0; reply_code = 0;
reply_reason_phrase = 0; reply_reason_phrase = nullptr;
connect_request = false; connect_request = false;
pia = 0; pia = nullptr;
upgraded = false; upgraded = false;
upgrade_connection = false; upgrade_connection = false;
upgrade_protocol.clear(); upgrade_protocol.clear();
@ -882,10 +882,10 @@ void HTTP_Analyzer::Done()
ReplyMade(true, "message interrupted when connection done"); ReplyMade(true, "message interrupted when connection done");
delete request_message; delete request_message;
request_message = 0; request_message = nullptr;
delete reply_message; delete reply_message;
reply_message = 0; reply_message = nullptr;
GenStats(); GenStats();
@ -1061,8 +1061,8 @@ void HTTP_Analyzer::DeliverStream(int len, const u_char* data, bool is_orig)
if ( AddChildAnalyzer(pia) ) if ( AddChildAnalyzer(pia) )
{ {
pia->FirstPacket(true, 0); pia->FirstPacket(true, nullptr);
pia->FirstPacket(false, 0); pia->FirstPacket(false, nullptr);
// This connection has transitioned to no longer // This connection has transitioned to no longer
// being http and the content line support analyzers // being http and the content line support analyzers
@ -1073,7 +1073,7 @@ void HTTP_Analyzer::DeliverStream(int len, const u_char* data, bool is_orig)
else else
// AddChildAnalyzer() will have deleted PIA. // AddChildAnalyzer() will have deleted PIA.
pia = 0; pia = nullptr;
} }
break; break;
@ -1193,7 +1193,7 @@ const char* HTTP_Analyzer::PrefixMatch(const char* line,
if ( *prefix ) if ( *prefix )
// It didn't match. // It didn't match.
return 0; return nullptr;
return line; return line;
} }
@ -1201,15 +1201,15 @@ const char* HTTP_Analyzer::PrefixMatch(const char* line,
const char* HTTP_Analyzer::PrefixWordMatch(const char* line, const char* HTTP_Analyzer::PrefixWordMatch(const char* line,
const char* end_of_line, const char* prefix) const char* end_of_line, const char* prefix)
{ {
if ( (line = PrefixMatch(line, end_of_line, prefix)) == 0 ) if ( (line = PrefixMatch(line, end_of_line, prefix)) == nullptr )
return 0; return nullptr;
const char* orig_line = line; const char* orig_line = line;
line = skip_whitespace(line, end_of_line); line = skip_whitespace(line, end_of_line);
if ( line == orig_line ) if ( line == orig_line )
// Word didn't end at prefix. // Word didn't end at prefix.
return 0; return nullptr;
return line; return line;
} }
@ -1235,7 +1235,7 @@ static const char* get_HTTP_token(const char* s, const char* e)
int HTTP_Analyzer::HTTP_RequestLine(const char* line, const char* end_of_line) int HTTP_Analyzer::HTTP_RequestLine(const char* line, const char* end_of_line)
{ {
const char* rest = 0; const char* rest = nullptr;
const char* end_of_method = get_HTTP_token(line, end_of_line); const char* end_of_method = get_HTTP_token(line, end_of_line);
if ( end_of_method == line ) if ( end_of_method == line )
@ -1439,7 +1439,7 @@ void HTTP_Analyzer::HTTP_Reply()
else else
{ {
Unref(reply_reason_phrase); Unref(reply_reason_phrase);
reply_reason_phrase = 0; reply_reason_phrase = nullptr;
} }
} }
@ -1459,7 +1459,7 @@ void HTTP_Analyzer::RequestMade(bool interrupted, const char* msg)
Unref(unescaped_URI); Unref(unescaped_URI);
Unref(request_URI); Unref(request_URI);
request_method = request_URI = unescaped_URI = 0; request_method = request_URI = unescaped_URI = nullptr;
num_request_lines = 0; num_request_lines = 0;
@ -1492,7 +1492,7 @@ void HTTP_Analyzer::ReplyMade(bool interrupted, const char* msg)
if ( reply_reason_phrase ) if ( reply_reason_phrase )
{ {
Unref(reply_reason_phrase); Unref(reply_reason_phrase);
reply_reason_phrase = 0; reply_reason_phrase = nullptr;
} }
// unanswered requests = 1 because there is no pop after 101. // unanswered requests = 1 because there is no pop after 101.
@ -1531,7 +1531,7 @@ void HTTP_Analyzer::RequestClash(Val* /* clash_val */)
const BroString* HTTP_Analyzer::UnansweredRequestMethod() const BroString* HTTP_Analyzer::UnansweredRequestMethod()
{ {
return unanswered_requests.empty() ? 0 : unanswered_requests.front()->AsString(); return unanswered_requests.empty() ? nullptr : unanswered_requests.front()->AsString();
} }
int HTTP_Analyzer::HTTP_ReplyLine(const char* line, const char* end_of_line) int HTTP_Analyzer::HTTP_ReplyLine(const char* line, const char* end_of_line)

View file

@ -81,7 +81,7 @@ void ICMP_Analyzer::DeliverPacket(int len, const u_char* data,
if ( rule_matcher ) if ( rule_matcher )
{ {
if ( ! matcher_state.MatcherInitialized(is_orig) ) if ( ! matcher_state.MatcherInitialized(is_orig) )
matcher_state.InitEndpointMatcher(this, ip, len, is_orig, 0); matcher_state.InitEndpointMatcher(this, ip, len, is_orig, nullptr);
} }
type = icmpp->icmp_type; type = icmpp->icmp_type;
@ -497,7 +497,7 @@ void ICMP_Analyzer::Echo(double t, const struct icmp* icmpp, int len,
int caplen, const u_char*& data, const IP_Hdr* ip_hdr) int caplen, const u_char*& data, const IP_Hdr* ip_hdr)
{ {
// For handling all Echo related ICMP messages // For handling all Echo related ICMP messages
EventHandlerPtr f = 0; EventHandlerPtr f = nullptr;
if ( ip_hdr->NextProto() == IPPROTO_ICMPV6 ) if ( ip_hdr->NextProto() == IPPROTO_ICMPV6 )
f = (icmpp->icmp_type == ICMP6_ECHO_REQUEST) f = (icmpp->icmp_type == ICMP6_ECHO_REQUEST)
@ -658,7 +658,7 @@ void ICMP_Analyzer::RouterSolicit(double t, const struct icmp* icmpp, int len,
void ICMP_Analyzer::Context4(double t, const struct icmp* icmpp, void ICMP_Analyzer::Context4(double t, const struct icmp* icmpp,
int len, int caplen, const u_char*& data, const IP_Hdr* ip_hdr) int len, int caplen, const u_char*& data, const IP_Hdr* ip_hdr)
{ {
EventHandlerPtr f = 0; EventHandlerPtr f = nullptr;
switch ( icmpp->icmp_type ) switch ( icmpp->icmp_type )
{ {
@ -684,7 +684,7 @@ void ICMP_Analyzer::Context4(double t, const struct icmp* icmpp,
void ICMP_Analyzer::Context6(double t, const struct icmp* icmpp, void ICMP_Analyzer::Context6(double t, const struct icmp* icmpp,
int len, int caplen, const u_char*& data, const IP_Hdr* ip_hdr) int len, int caplen, const u_char*& data, const IP_Hdr* ip_hdr)
{ {
EventHandlerPtr f = 0; EventHandlerPtr f = nullptr;
switch ( icmpp->icmp_type ) switch ( icmpp->icmp_type )
{ {
@ -720,8 +720,8 @@ void ICMP_Analyzer::Context6(double t, const struct icmp* icmpp,
VectorVal* ICMP_Analyzer::BuildNDOptionsVal(int caplen, const u_char* data) VectorVal* ICMP_Analyzer::BuildNDOptionsVal(int caplen, const u_char* data)
{ {
static RecordType* icmp6_nd_option_type = 0; static RecordType* icmp6_nd_option_type = nullptr;
static RecordType* icmp6_nd_prefix_info_type = 0; static RecordType* icmp6_nd_prefix_info_type = nullptr;
if ( ! icmp6_nd_option_type ) if ( ! icmp6_nd_option_type )
{ {

View file

@ -52,7 +52,7 @@ void Ident_Analyzer::DeliverStream(int length, const u_char* data, bool is_orig)
const char* orig_line = line; const char* orig_line = line;
const char* end_of_line = line + length; const char* end_of_line = line + length;
tcp::TCP_Endpoint* s = 0; tcp::TCP_Endpoint* s = nullptr;
if ( TCP() ) if ( TCP() )
s = is_orig ? TCP()->Orig() : TCP()->Resp(); s = is_orig ? TCP()->Orig() : TCP()->Resp();
@ -194,17 +194,17 @@ const char* Ident_Analyzer::ParsePair(const char* line, const char* end_of_line,
line = ParsePort(line, end_of_line, p1); line = ParsePort(line, end_of_line, p1);
if ( ! line ) if ( ! line )
{ {
return 0; return nullptr;
} }
if ( line >= end_of_line || line[0] != ',' ) if ( line >= end_of_line || line[0] != ',' )
return 0; return nullptr;
++line; ++line;
line = ParsePort(line, end_of_line, p2); line = ParsePort(line, end_of_line, p2);
if ( ! line ) if ( ! line )
return 0; return nullptr;
return line; return line;
} }
@ -216,7 +216,7 @@ const char* Ident_Analyzer::ParsePort(const char* line, const char* end_of_line,
line = skip_whitespace(line, end_of_line); line = skip_whitespace(line, end_of_line);
if ( ! isdigit(*line) ) if ( ! isdigit(*line) )
return 0; return nullptr;
const char* l = line; const char* l = line;

View file

@ -277,7 +277,7 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig)
if ( parts[i][0] == '@' ) if ( parts[i][0] == '@' )
parts[i] = parts[i].substr(1); parts[i] = parts[i].substr(1);
auto idx = make_intrusive<StringVal>(parts[i].c_str()); auto idx = make_intrusive<StringVal>(parts[i].c_str());
set->Assign(idx.get(), 0); set->Assign(idx.get(), nullptr);
} }
EnqueueConnEvent(irc_names_info, EnqueueConnEvent(irc_names_info,
@ -468,7 +468,7 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig)
for ( unsigned int i = 0; i < parts.size(); ++i ) for ( unsigned int i = 0; i < parts.size(); ++i )
{ {
auto idx = make_intrusive<StringVal>(parts[i].c_str()); auto idx = make_intrusive<StringVal>(parts[i].c_str());
set->Assign(idx.get(), 0); set->Assign(idx.get(), nullptr);
} }
EnqueueConnEvent(irc_whois_channel_line, EnqueueConnEvent(irc_whois_channel_line,
@ -857,7 +857,7 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig)
info->Assign(2, make_intrusive<StringVal>(empty_string.c_str())); info->Assign(2, make_intrusive<StringVal>(empty_string.c_str()));
// User mode. // User mode.
info->Assign(3, make_intrusive<StringVal>(empty_string.c_str())); info->Assign(3, make_intrusive<StringVal>(empty_string.c_str()));
list->Assign(info, 0); list->Assign(info, nullptr);
Unref(info); Unref(info);
} }
@ -918,7 +918,7 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig)
info->Assign(2, make_intrusive<StringVal>(empty_string.c_str())); info->Assign(2, make_intrusive<StringVal>(empty_string.c_str()));
// User mode: // User mode:
info->Assign(3, make_intrusive<StringVal>(mode.c_str())); info->Assign(3, make_intrusive<StringVal>(mode.c_str()));
list->Assign(info.get(), 0); list->Assign(info.get(), nullptr);
} }
EnqueueConnEvent(irc_join_message, EnqueueConnEvent(irc_join_message,
@ -957,7 +957,7 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig)
for ( unsigned int i = 0; i < channelList.size(); ++i ) for ( unsigned int i = 0; i < channelList.size(); ++i )
{ {
auto idx = make_intrusive<StringVal>(channelList[i].c_str()); auto idx = make_intrusive<StringVal>(channelList[i].c_str());
set->Assign(idx.get(), 0); set->Assign(idx.get(), nullptr);
} }
EnqueueConnEvent(irc_part_message, EnqueueConnEvent(irc_part_message,

View file

@ -16,7 +16,7 @@
using namespace analyzer::login; using namespace analyzer::login;
static RE_Matcher* re_skip_authentication = 0; static RE_Matcher* re_skip_authentication = nullptr;
static RE_Matcher* re_direct_login_prompts; static RE_Matcher* re_direct_login_prompts;
static RE_Matcher* re_login_prompts; static RE_Matcher* re_login_prompts;
static RE_Matcher* re_login_non_failure_msgs; static RE_Matcher* re_login_non_failure_msgs;
@ -39,7 +39,7 @@ Login_Analyzer::Login_Analyzer(const char* name, Connection* conn)
user_text_first = 0; user_text_first = 0;
user_text_last = MAX_USER_TEXT - 1; user_text_last = MAX_USER_TEXT - 1;
num_user_text = 0; num_user_text = 0;
client_name = username = 0; client_name = username = nullptr;
saw_ploy = is_VMS = false; saw_ploy = is_VMS = false;
if ( ! re_skip_authentication ) if ( ! re_skip_authentication )
@ -214,7 +214,7 @@ void Login_Analyzer::AuthenticationDialog(bool orig, char* line)
// respect to it (see below). // respect to it (see below).
login_prompt_line != failure_line); login_prompt_line != failure_line);
const char* next_prompt = 0; const char* next_prompt = nullptr;
while ( (*prompt != '\0' && while ( (*prompt != '\0' &&
(next_prompt = IsLoginPrompt(prompt + 1))) || (next_prompt = IsLoginPrompt(prompt + 1))) ||
multi_line_prompt ) multi_line_prompt )
@ -507,7 +507,7 @@ const char* Login_Analyzer::IsLoginPrompt(const char* line) const
int prompt_match = re_login_prompts->MatchAnywhere(line); int prompt_match = re_login_prompts->MatchAnywhere(line);
if ( ! prompt_match || IsFailureMsg(line) ) if ( ! prompt_match || IsFailureMsg(line) )
// IRIX can report "login: ERROR: Login incorrect" // IRIX can report "login: ERROR: Login incorrect"
return 0; return nullptr;
return &line[prompt_match]; return &line[prompt_match];
} }
@ -565,7 +565,7 @@ char* Login_Analyzer::PeekUserText()
{ {
reporter->AnalyzerError(this, reporter->AnalyzerError(this,
"underflow in Login_Analyzer::PeekUserText()"); "underflow in Login_Analyzer::PeekUserText()");
return 0; return nullptr;
} }
return user_text[user_text_first]; return user_text[user_text_first];
@ -576,7 +576,7 @@ char* Login_Analyzer::PopUserText()
char* s = PeekUserText(); char* s = PeekUserText();
if ( ! s ) if ( ! s )
return 0; return nullptr;
if ( ++user_text_first == MAX_USER_TEXT ) if ( ++user_text_first == MAX_USER_TEXT )
user_text_first = 0; user_text_first = 0;

View file

@ -320,7 +320,7 @@ char* TelnetEnvironmentOption::ExtractEnv(u_char*& data, int& len, int& code)
if ( code != ENVIRON_VAR && code != ENVIRON_VAL && if ( code != ENVIRON_VAR && code != ENVIRON_VAL &&
code != ENVIRON_USERVAR ) code != ENVIRON_USERVAR )
return 0; return nullptr;
// Move past code. // Move past code.
--len; --len;
@ -338,7 +338,7 @@ char* TelnetEnvironmentOption::ExtractEnv(u_char*& data, int& len, int& code)
{ {
++d; // move past ESC ++d; // move past ESC
if ( d >= data_end ) if ( d >= data_end )
return 0; return nullptr;
break; break;
} }
} }
@ -400,7 +400,7 @@ TelnetOption* NVT_Analyzer::FindOption(unsigned int code)
if ( options[i]->Code() == code ) if ( options[i]->Code() == code )
return options[i]; return options[i];
TelnetOption* opt = 0; TelnetOption* opt = nullptr;
if ( i < NUM_TELNET_OPTIONS ) if ( i < NUM_TELNET_OPTIONS )
{ // Maybe we haven't created this option yet. { // Maybe we haven't created this option yet.
switch ( code ) { switch ( code ) {

View file

@ -17,10 +17,10 @@ public:
AddComponent(new ::analyzer::Component("Telnet", ::analyzer::login::Telnet_Analyzer::Instantiate)); AddComponent(new ::analyzer::Component("Telnet", ::analyzer::login::Telnet_Analyzer::Instantiate));
AddComponent(new ::analyzer::Component("Rsh", ::analyzer::login::Rsh_Analyzer::Instantiate)); AddComponent(new ::analyzer::Component("Rsh", ::analyzer::login::Rsh_Analyzer::Instantiate));
AddComponent(new ::analyzer::Component("Rlogin", ::analyzer::login::Rlogin_Analyzer::Instantiate)); AddComponent(new ::analyzer::Component("Rlogin", ::analyzer::login::Rlogin_Analyzer::Instantiate));
AddComponent(new ::analyzer::Component("NVT", 0)); AddComponent(new ::analyzer::Component("NVT", nullptr));
AddComponent(new ::analyzer::Component("Login", 0)); AddComponent(new ::analyzer::Component("Login", nullptr));
AddComponent(new ::analyzer::Component("Contents_Rsh", 0)); AddComponent(new ::analyzer::Component("Contents_Rsh", nullptr));
AddComponent(new ::analyzer::Component("Contents_Rlogin", 0)); AddComponent(new ::analyzer::Component("Contents_Rlogin", nullptr));
plugin::Configuration config; plugin::Configuration config;
config.name = "Zeek::Login"; config.name = "Zeek::Login";

View file

@ -16,7 +16,7 @@ Contents_Rlogin_Analyzer::Contents_Rlogin_Analyzer(Connection* conn, bool orig,
{ {
num_bytes_to_scan = 0; num_bytes_to_scan = 0;
analyzer = arg_analyzer; analyzer = arg_analyzer;
peer = 0; peer = nullptr;
if ( orig ) if ( orig )
state = save_state = RLOGIN_FIRST_NULL; state = save_state = RLOGIN_FIRST_NULL;

View file

@ -21,7 +21,7 @@
namespace analyzer { namespace mime { namespace analyzer { namespace mime {
static const data_chunk_t null_data_chunk = { 0, 0 }; static const data_chunk_t null_data_chunk = { 0, nullptr };
int mime_header_only = 0; int mime_header_only = 0;
int mime_decode_data = 1; int mime_decode_data = 1;
@ -65,14 +65,14 @@ enum MIME_BOUNDARY_DELIMITER {
static const char* MIMEHeaderName[] = { static const char* MIMEHeaderName[] = {
"content-type", "content-type",
"content-transfer-encoding", "content-transfer-encoding",
0, nullptr,
}; };
static const char* MIMEContentTypeName[] = { static const char* MIMEContentTypeName[] = {
"MULTIPART", "MULTIPART",
"MESSAGE", "MESSAGE",
"TEXT", "TEXT",
0, nullptr,
}; };
static const char* MIMEContentSubtypeName[] = { static const char* MIMEContentSubtypeName[] = {
@ -86,7 +86,7 @@ static const char* MIMEContentSubtypeName[] = {
"PLAIN", // for text "PLAIN", // for text
0, // other nullptr, // other
}; };
static const char* MIMEContentEncodingName[] = { static const char* MIMEContentEncodingName[] = {
@ -95,12 +95,12 @@ static const char* MIMEContentEncodingName[] = {
"BINARY", "BINARY",
"QUOTED-PRINTABLE", "QUOTED-PRINTABLE",
"BASE64", "BASE64",
0, nullptr,
}; };
bool is_null_data_chunk(data_chunk_t b) bool is_null_data_chunk(data_chunk_t b)
{ {
return b.data == 0; return b.data == nullptr;
} }
bool is_lws(char ch) bool is_lws(char ch)
@ -437,7 +437,7 @@ using namespace analyzer::mime;
MIME_Multiline::MIME_Multiline() MIME_Multiline::MIME_Multiline()
{ {
line = 0; line = nullptr;
} }
MIME_Multiline::~MIME_Multiline() MIME_Multiline::~MIME_Multiline()
@ -454,7 +454,7 @@ void MIME_Multiline::append(int len, const char* data)
BroString* MIME_Multiline::get_concatenated_line() BroString* MIME_Multiline::get_concatenated_line()
{ {
if ( buffer.empty() ) if ( buffer.empty() )
return 0; return nullptr;
delete line; delete line;
line = concatenate(buffer); line = concatenate(buffer);
@ -546,7 +546,7 @@ void MIME_Entity::init()
in_header = 1; in_header = 1;
end_of_data = 0; end_of_data = 0;
current_header_line = 0; current_header_line = nullptr;
current_field_type = MIME_FIELD_OTHER; current_field_type = MIME_FIELD_OTHER;
need_to_parse_parameters = 0; need_to_parse_parameters = 0;
@ -554,22 +554,22 @@ void MIME_Entity::init()
content_type_str = new StringVal("TEXT"); content_type_str = new StringVal("TEXT");
content_subtype_str = new StringVal("PLAIN"); content_subtype_str = new StringVal("PLAIN");
content_encoding_str = 0; content_encoding_str = nullptr;
multipart_boundary = 0; multipart_boundary = nullptr;
content_type = CONTENT_TYPE_TEXT; content_type = CONTENT_TYPE_TEXT;
content_subtype = CONTENT_SUBTYPE_PLAIN; content_subtype = CONTENT_SUBTYPE_PLAIN;
content_encoding = CONTENT_ENCODING_OTHER; content_encoding = CONTENT_ENCODING_OTHER;
parent = 0; parent = nullptr;
current_child_entity = 0; current_child_entity = nullptr;
base64_decoder = 0; base64_decoder = nullptr;
data_buf_length = 0; data_buf_length = 0;
data_buf_data = 0; data_buf_data = nullptr;
data_buf_offset = -1; data_buf_offset = -1;
message = 0; message = nullptr;
delay_adding_implicit_CRLF = false; delay_adding_implicit_CRLF = false;
want_all_headers = false; want_all_headers = false;
} }
@ -577,7 +577,7 @@ void MIME_Entity::init()
MIME_Entity::~MIME_Entity() MIME_Entity::~MIME_Entity()
{ {
if ( ! end_of_data ) if ( ! end_of_data )
reporter->AnalyzerError(message ? message->GetAnalyzer() : 0, reporter->AnalyzerError(message ? message->GetAnalyzer() : nullptr,
"missing MIME_Entity::EndOfData() before ~MIME_Entity"); "missing MIME_Entity::EndOfData() before ~MIME_Entity");
delete current_header_line; delete current_header_line;
@ -653,7 +653,7 @@ void MIME_Entity::EndOfData()
else else
{ {
if ( current_child_entity != 0 ) if ( current_child_entity != nullptr )
{ {
if ( content_type == CONTENT_TYPE_MULTIPART ) if ( content_type == CONTENT_TYPE_MULTIPART )
IllegalFormat("multipart closing boundary delimiter missing"); IllegalFormat("multipart closing boundary delimiter missing");
@ -675,13 +675,13 @@ void MIME_Entity::NewDataLine(int len, const char* data, bool trailing_CRLF)
{ {
switch ( CheckBoundaryDelimiter(len, data) ) { switch ( CheckBoundaryDelimiter(len, data) ) {
case MULTIPART_BOUNDARY: case MULTIPART_BOUNDARY:
if ( current_child_entity != 0 ) if ( current_child_entity != nullptr )
EndChildEntity(); EndChildEntity();
BeginChildEntity(); BeginChildEntity();
return; return;
case MULTIPART_CLOSING_BOUNDARY: case MULTIPART_CLOSING_BOUNDARY:
if ( current_child_entity != 0 ) if ( current_child_entity != nullptr )
EndChildEntity(); EndChildEntity();
EndOfData(); EndOfData();
return; return;
@ -695,7 +695,7 @@ void MIME_Entity::NewDataLine(int len, const char* data, bool trailing_CRLF)
// binary encoding, and thus do not need to decode // binary encoding, and thus do not need to decode
// before passing the data to child. // before passing the data to child.
if ( current_child_entity != 0 ) if ( current_child_entity != nullptr )
// Data before the first or after the last // Data before the first or after the last
// boundary delimiter are ignored // boundary delimiter are ignored
current_child_entity->Deliver(len, data, trailing_CRLF); current_child_entity->Deliver(len, data, trailing_CRLF);
@ -722,7 +722,7 @@ void MIME_Entity::NewHeader(int len, const char* data)
void MIME_Entity::ContHeader(int len, const char* data) void MIME_Entity::ContHeader(int len, const char* data)
{ {
if ( current_header_line == 0 ) if ( current_header_line == nullptr )
{ {
IllegalFormat("first header line starts with linear whitespace"); IllegalFormat("first header line starts with linear whitespace");
@ -737,11 +737,11 @@ void MIME_Entity::ContHeader(int len, const char* data)
void MIME_Entity::FinishHeader() void MIME_Entity::FinishHeader()
{ {
if ( current_header_line == 0 ) if ( current_header_line == nullptr )
return; return;
MIME_Header* h = new MIME_Header(current_header_line); MIME_Header* h = new MIME_Header(current_header_line);
current_header_line = 0; current_header_line = nullptr;
if ( ! is_null_data_chunk(h->get_name()) ) if ( ! is_null_data_chunk(h->get_name()) )
{ {
@ -762,7 +762,7 @@ int MIME_Entity::LookupMIMEHeaderName(data_chunk_t name)
// A linear lookup should be fine for now. // A linear lookup should be fine for now.
// header names are case-insensitive (RFC 822, 2822, 2045). // header names are case-insensitive (RFC 822, 2822, 2045).
for ( int i = 0; MIMEHeaderName[i] != 0; ++i ) for ( int i = 0; MIMEHeaderName[i] != nullptr; ++i )
if ( istrequal(name, MIMEHeaderName[i]) ) if ( istrequal(name, MIMEHeaderName[i]) )
return i; return i;
return -1; return -1;
@ -770,7 +770,7 @@ int MIME_Entity::LookupMIMEHeaderName(data_chunk_t name)
void MIME_Entity::ParseMIMEHeader(MIME_Header* h) void MIME_Entity::ParseMIMEHeader(MIME_Header* h)
{ {
if ( h == 0 ) if ( h == nullptr )
return; return;
current_field_type = LookupMIMEHeaderName(h->get_name()); current_field_type = LookupMIMEHeaderName(h->get_name());
@ -884,7 +884,7 @@ bool MIME_Entity::ParseFieldParameters(int len, const char* data)
data += offset; data += offset;
len -= offset; len -= offset;
BroString* val = 0; BroString* val = nullptr;
if ( current_field_type == MIME_CONTENT_TYPE && if ( current_field_type == MIME_CONTENT_TYPE &&
content_type == CONTENT_TYPE_MULTIPART && content_type == CONTENT_TYPE_MULTIPART &&
@ -1172,13 +1172,13 @@ void MIME_Entity::FinishDecodeBase64()
} }
delete base64_decoder; delete base64_decoder;
base64_decoder = 0; base64_decoder = nullptr;
} }
bool MIME_Entity::GetDataBuffer() bool MIME_Entity::GetDataBuffer()
{ {
int ret = message->RequestBuffer(&data_buf_length, &data_buf_data); int ret = message->RequestBuffer(&data_buf_length, &data_buf_data);
if ( ! ret || data_buf_length == 0 || data_buf_data == 0 ) if ( ! ret || data_buf_length == 0 || data_buf_data == nullptr )
{ {
// reporter->InternalError("cannot get data buffer from MIME_Message", ""); // reporter->InternalError("cannot get data buffer from MIME_Message", "");
return false; return false;
@ -1250,18 +1250,18 @@ void MIME_Entity::SubmitAllHeaders()
void MIME_Entity::BeginChildEntity() void MIME_Entity::BeginChildEntity()
{ {
ASSERT(current_child_entity == 0); ASSERT(current_child_entity == nullptr);
current_child_entity = NewChildEntity(); current_child_entity = NewChildEntity();
message->BeginEntity(current_child_entity); message->BeginEntity(current_child_entity);
} }
void MIME_Entity::EndChildEntity() void MIME_Entity::EndChildEntity()
{ {
ASSERT(current_child_entity != 0); ASSERT(current_child_entity != nullptr);
current_child_entity->EndOfData(); current_child_entity->EndOfData();
delete current_child_entity; delete current_child_entity;
current_child_entity = 0; current_child_entity = nullptr;
} }
void MIME_Entity::IllegalFormat(const char* explanation) void MIME_Entity::IllegalFormat(const char* explanation)
@ -1349,7 +1349,7 @@ MIME_Mail::MIME_Mail(analyzer::Analyzer* mail_analyzer, bool orig, int buf_size)
content_hash_length = 0; content_hash_length = 0;
top_level = new MIME_Entity(this, 0); // to be changed to MIME_Mail top_level = new MIME_Entity(this, nullptr); // to be changed to MIME_Mail
BeginEntity(top_level); BeginEntity(top_level);
} }

View file

@ -188,7 +188,7 @@ public:
// Cannot initialize top_level entity because we do // Cannot initialize top_level entity because we do
// not know its type yet (MIME_Entity / MIME_Mail / // not know its type yet (MIME_Entity / MIME_Mail /
// etc.). // etc.).
top_level = 0; top_level = nullptr;
finished = false; finished = false;
analyzer = arg_analyzer; analyzer = arg_analyzer;
} }

Some files were not shown because too many files have changed in this diff Show more