diff --git a/src/Conn.cc b/src/Conn.cc index 83e5f0e8cf..2c431cb9c1 100644 --- a/src/Conn.cc +++ b/src/Conn.cc @@ -367,7 +367,7 @@ RecordVal* Connection::BuildConnVal() conn_val->Assign(2, std::move(resp_endp)); // 3 and 4 are set below. conn_val->Assign(5, make_intrusive(IntrusivePtr{NewRef{}, string_set})); // service - conn_val->Assign(6, val_mgr->GetEmptyString()); // history + conn_val->Assign(6, val_mgr->EmptyString()); // history if ( ! uid ) uid.Set(bits_per_uid); diff --git a/src/IP.cc b/src/IP.cc index afafa227c6..ea3e0df41e 100644 --- a/src/IP.cc +++ b/src/IP.cc @@ -56,7 +56,7 @@ static VectorVal* BuildOptionsVal(const u_char* data, int len) { // Pad1 option rv->Assign(1, val_mgr->Count(0)); - rv->Assign(2, val_mgr->GetEmptyString()); + rv->Assign(2, val_mgr->EmptyString()); data += sizeof(uint8_t); len -= sizeof(uint8_t); } diff --git a/src/OpaqueVal.cc b/src/OpaqueVal.cc index 28e5f0f9e4..3970e20ab5 100644 --- a/src/OpaqueVal.cc +++ b/src/OpaqueVal.cc @@ -171,8 +171,7 @@ bool HashVal::Init() IntrusivePtr HashVal::Get() { if ( ! valid ) - return IntrusivePtr(AdoptRef{}, - val_mgr->GetEmptyString()); + return val_mgr->EmptyString(); auto result = DoGet(); valid = false; @@ -203,7 +202,7 @@ bool HashVal::DoFeed(const void*, size_t) IntrusivePtr HashVal::DoGet() { assert(! "missing implementation of DoGet()"); - return IntrusivePtr(AdoptRef{}, val_mgr->GetEmptyString()); + return val_mgr->EmptyString(); } HashVal::HashVal(OpaqueType* t) : OpaqueVal(t) @@ -275,7 +274,7 @@ bool MD5Val::DoFeed(const void* data, size_t size) IntrusivePtr MD5Val::DoGet() { if ( ! IsValid() ) - return IntrusivePtr(AdoptRef{}, val_mgr->GetEmptyString()); + return val_mgr->EmptyString(); u_char digest[MD5_DIGEST_LENGTH]; hash_final(ctx, digest); @@ -395,8 +394,7 @@ bool SHA1Val::DoFeed(const void* data, size_t size) IntrusivePtr SHA1Val::DoGet() { if ( ! IsValid() ) - return IntrusivePtr(AdoptRef{}, - val_mgr->GetEmptyString()); + return val_mgr->EmptyString(); u_char digest[SHA_DIGEST_LENGTH]; hash_final(ctx, digest); @@ -519,8 +517,7 @@ bool SHA256Val::DoFeed(const void* data, size_t size) IntrusivePtr SHA256Val::DoGet() { if ( ! IsValid() ) - return IntrusivePtr(AdoptRef{}, - val_mgr->GetEmptyString()); + return val_mgr->EmptyString(); u_char digest[SHA256_DIGEST_LENGTH]; hash_final(ctx, digest); diff --git a/src/RuleAction.cc b/src/RuleAction.cc index b5afaf0e81..031fa0e6b2 100644 --- a/src/RuleAction.cc +++ b/src/RuleAction.cc @@ -24,7 +24,7 @@ void RuleActionEvent::DoAction(const Rule* parent, RuleEndpointState* state, mgr.Enqueue(signature_match, IntrusivePtr{AdoptRef{}, rule_matcher->BuildRuleStateValue(parent, state)}, make_intrusive(msg), - data ? make_intrusive(len, (const char*)data) : IntrusivePtr{AdoptRef{}, val_mgr->GetEmptyString()} + data ? make_intrusive(len, (const char*)data) : val_mgr->EmptyString() ); } diff --git a/src/RuleCondition.cc b/src/RuleCondition.cc index 16efe35821..e561d28e0f 100644 --- a/src/RuleCondition.cc +++ b/src/RuleCondition.cc @@ -174,7 +174,7 @@ bool RuleConditionEval::DoMatch(Rule* rule, RuleEndpointState* state, if ( data ) args.emplace_back(make_intrusive(len, (const char*) data)); else - args.emplace_back(AdoptRef{}, val_mgr->GetEmptyString()); + args.emplace_back(val_mgr->EmptyString()); bool result = false; diff --git a/src/analyzer/protocol/asn1/asn1.pac b/src/analyzer/protocol/asn1/asn1.pac index 8da486cce7..a1fc14e1a3 100644 --- a/src/analyzer/protocol/asn1/asn1.pac +++ b/src/analyzer/protocol/asn1/asn1.pac @@ -152,7 +152,7 @@ StringVal* asn1_oid_to_val(const ASN1Encoding* oid) if ( ! subidentifier.empty() || subidentifiers.size() < 1 ) // Underflow. - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString()->Ref()->AsStringVal(); for ( size_t i = 0; i < subidentifiers.size(); ++i ) { diff --git a/src/analyzer/protocol/ftp/functions.bif b/src/analyzer/protocol/ftp/functions.bif index 672996565f..97b2042c20 100644 --- a/src/analyzer/protocol/ftp/functions.bif +++ b/src/analyzer/protocol/ftp/functions.bif @@ -215,6 +215,6 @@ function fmt_ftp_port%(a: addr, p: port%): string { builtin_error("conversion of non-IPv4 address in fmt_ftp_port", @ARG@[0]); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } %} diff --git a/src/analyzer/protocol/irc/IRC.cc b/src/analyzer/protocol/irc/IRC.cc index d047b79f6a..ab624b477a 100644 --- a/src/analyzer/protocol/irc/IRC.cc +++ b/src/analyzer/protocol/irc/IRC.cc @@ -740,15 +740,15 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig) if ( parts.size() > 0 ) vl.emplace_back(make_intrusive(parts[0].c_str())); - else vl.emplace_back(AdoptRef{}, val_mgr->GetEmptyString()); + else vl.emplace_back(val_mgr->EmptyString()); if ( parts.size() > 1 ) vl.emplace_back(make_intrusive(parts[1].c_str())); - else vl.emplace_back(AdoptRef{}, val_mgr->GetEmptyString()); + else vl.emplace_back(val_mgr->EmptyString()); if ( parts.size() > 2 ) vl.emplace_back(make_intrusive(parts[2].c_str())); - else vl.emplace_back(AdoptRef{}, val_mgr->GetEmptyString()); + else vl.emplace_back(val_mgr->EmptyString()); string realname; for ( unsigned int i = 3; i < parts.size(); i++ ) @@ -810,7 +810,7 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig) vl.emplace_back(make_intrusive(comment.c_str())); } else - vl.emplace_back(AdoptRef{}, val_mgr->GetEmptyString()); + vl.emplace_back(val_mgr->EmptyString()); EnqueueConnEvent(irc_kick_message, std::move(vl)); } @@ -1026,7 +1026,7 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig) val_mgr->Bool(orig), parts.size() > 0 ? make_intrusive(parts[0].c_str()) : - IntrusivePtr{AdoptRef{}, val_mgr->GetEmptyString()}, + val_mgr->EmptyString(), val_mgr->Bool(oper) ); } diff --git a/src/analyzer/protocol/krb/KRB.cc b/src/analyzer/protocol/krb/KRB.cc index 890947e5b7..da8af91e8e 100644 --- a/src/analyzer/protocol/krb/KRB.cc +++ b/src/analyzer/protocol/krb/KRB.cc @@ -87,7 +87,9 @@ void KRB_Analyzer::DeliverPacket(int len, const u_char* data, bool orig, } } -StringVal* KRB_Analyzer::GetAuthenticationInfo(const BroString* principal, const BroString* ciphertext, const bro_uint_t enctype) +IntrusivePtr KRB_Analyzer::GetAuthenticationInfo(const BroString* principal, + const BroString* ciphertext, + const bro_uint_t enctype) { #ifdef USE_KRB5 if ( !krb_available ) @@ -145,7 +147,7 @@ StringVal* KRB_Analyzer::GetAuthenticationInfo(const BroString* principal, const return nullptr; } - StringVal* ret = new StringVal(cp); + auto ret = make_intrusive(cp); krb5_free_unparsed_name(krb_context, cp); krb5_free_ticket(krb_context, tkt); diff --git a/src/analyzer/protocol/krb/KRB.h b/src/analyzer/protocol/krb/KRB.h index 4d0de0e2a5..a34ccbe4b4 100644 --- a/src/analyzer/protocol/krb/KRB.h +++ b/src/analyzer/protocol/krb/KRB.h @@ -25,7 +25,9 @@ public: static analyzer::Analyzer* Instantiate(Connection* conn) { return new KRB_Analyzer(conn); } - StringVal* GetAuthenticationInfo(const BroString* principal, const BroString* ciphertext, const bro_uint_t enctype); + IntrusivePtr GetAuthenticationInfo(const BroString* principal, + const BroString* ciphertext, + const bro_uint_t enctype); protected: diff --git a/src/analyzer/protocol/krb/KRB_TCP.h b/src/analyzer/protocol/krb/KRB_TCP.h index 0594bcb507..7cc1a83a5d 100644 --- a/src/analyzer/protocol/krb/KRB_TCP.h +++ b/src/analyzer/protocol/krb/KRB_TCP.h @@ -21,7 +21,10 @@ public: // Overriden from tcp::TCP_ApplicationAnalyzer. void EndpointEOF(bool is_orig) override; - StringVal* GetAuthenticationInfo(const BroString* principal, const BroString* ciphertext, const bro_uint_t enctype) { return val_mgr->GetEmptyString(); } + IntrusivePtr GetAuthenticationInfo(const BroString* principal, + const BroString* ciphertext, + const bro_uint_t enctype) + { return val_mgr->EmptyString(); } static analyzer::Analyzer* Instantiate(Connection* conn) { return new KRB_Analyzer(conn); } diff --git a/src/analyzer/protocol/krb/krb-analyzer.pac b/src/analyzer/protocol/krb/krb-analyzer.pac index f24964300d..d512856302 100644 --- a/src/analyzer/protocol/krb/krb-analyzer.pac +++ b/src/analyzer/protocol/krb/krb-analyzer.pac @@ -263,7 +263,7 @@ refine connection KRB_Conn += { rv->Assign(1, val_mgr->Bool(${msg.ap_options.mutual_required})); RecordVal* rvticket = proc_ticket(${msg.ticket}); - StringVal* authenticationinfo = bro_analyzer()->GetAuthenticationInfo(rvticket->Lookup(2)->AsString(), rvticket->Lookup(4)->AsString(), rvticket->Lookup(3)->AsCount()); + auto authenticationinfo = bro_analyzer()->GetAuthenticationInfo(rvticket->Lookup(2)->AsString(), rvticket->Lookup(4)->AsString(), rvticket->Lookup(3)->AsCount()); if ( authenticationinfo ) rvticket->Assign(5, authenticationinfo); BifEvent::generate_krb_ap_request(bro_analyzer(), bro_analyzer()->Conn(), diff --git a/src/analyzer/protocol/login/Login.cc b/src/analyzer/protocol/login/Login.cc index d3dfee53f9..b097919ece 100644 --- a/src/analyzer/protocol/login/Login.cc +++ b/src/analyzer/protocol/login/Login.cc @@ -423,7 +423,7 @@ void Login_Analyzer::LoginEvent(EventHandlerPtr f, const char* line, IntrusivePtr{AdoptRef{}, BuildConnVal()}, IntrusivePtr{NewRef{}, username}, client_name ? IntrusivePtr{NewRef{}, client_name} - : IntrusivePtr{AdoptRef{}, val_mgr->GetEmptyString()}, + : val_mgr->EmptyString(), IntrusivePtr{AdoptRef{}, password}, make_intrusive(line) ); @@ -593,7 +593,7 @@ Val* Login_Analyzer::PopUserTextVal() if ( s ) return new StringVal(new BroString(true, byte_vec(s), strlen(s))); else - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString()->Ref(); } bool Login_Analyzer::MatchesTypeahead(const char* line) const diff --git a/src/analyzer/protocol/sip/sip-analyzer.pac b/src/analyzer/protocol/sip/sip-analyzer.pac index d4f1b43bc5..fb5bf99c24 100644 --- a/src/analyzer/protocol/sip/sip-analyzer.pac +++ b/src/analyzer/protocol/sip/sip-analyzer.pac @@ -100,17 +100,17 @@ refine flow SIP_Flow += { function build_sip_header_val(name: const_bytestring, value: const_bytestring): BroVal %{ RecordVal* header_record = new RecordVal(mime_header_rec); + IntrusivePtr name_val; - StringVal* name_val = 0; if ( name.length() > 0 ) { // Make it all uppercase. - name_val = new StringVal(name.length(), (const char*) name.begin()); + name_val = make_intrusive(name.length(), (const char*) name.begin()); name_val->ToUpper(); } else { - name_val = val_mgr->GetEmptyString(); + name_val = val_mgr->EmptyString(); } header_record->Assign(0, name_val); diff --git a/src/analyzer/protocol/smb/smb1-com-session-setup-andx.pac b/src/analyzer/protocol/smb/smb1-com-session-setup-andx.pac index 137b0e7d21..8dcba2f515 100644 --- a/src/analyzer/protocol/smb/smb1-com-session-setup-andx.pac +++ b/src/analyzer/protocol/smb/smb1-com-session-setup-andx.pac @@ -91,9 +91,9 @@ refine connection SMB_Conn += { { case 3: // pre NT LM 0.12 response->Assign(1, val_mgr->Bool(${val.lanman.is_guest})); - response->Assign(2, ${val.lanman.byte_count} == 0 ? val_mgr->GetEmptyString() : smb_string2stringval(${val.lanman.native_os[0]})); - response->Assign(3, ${val.lanman.byte_count} == 0 ? val_mgr->GetEmptyString() : smb_string2stringval(${val.lanman.native_lanman[0]})); - response->Assign(4, ${val.lanman.byte_count} == 0 ? val_mgr->GetEmptyString() : smb_string2stringval(${val.lanman.primary_domain[0]})); + response->Assign(2, ${val.lanman.byte_count} == 0 ? val_mgr->EmptyString()->Ref()->AsStringVal() : smb_string2stringval(${val.lanman.native_os[0]})); + response->Assign(3, ${val.lanman.byte_count} == 0 ? val_mgr->EmptyString()->Ref()->AsStringVal() : smb_string2stringval(${val.lanman.native_lanman[0]})); + response->Assign(4, ${val.lanman.byte_count} == 0 ? val_mgr->EmptyString()->Ref()->AsStringVal() : smb_string2stringval(${val.lanman.primary_domain[0]})); break; case 4: // NT LM 0.12 response->Assign(1, val_mgr->Bool(${val.ntlm.is_guest})); diff --git a/src/analyzer/protocol/smb/smb1-com-transaction-secondary.pac b/src/analyzer/protocol/smb/smb1-com-transaction-secondary.pac index 2d9c5b297c..68dbcf1e5c 100644 --- a/src/analyzer/protocol/smb/smb1-com-transaction-secondary.pac +++ b/src/analyzer/protocol/smb/smb1-com-transaction-secondary.pac @@ -17,7 +17,7 @@ refine connection SMB_Conn += { StringVal* parameters = new StringVal(${val.parameters}.length(), (const char*)${val.parameters}.data()); - StringVal* payload_str = nullptr; + IntrusivePtr payload_str; SMB1_transaction_data* payload = nullptr; if ( ${val.data_count} > 0 ) @@ -29,20 +29,20 @@ refine connection SMB_Conn += { { switch ( payload->trans_type() ) { case SMB_PIPE: - payload_str = new StringVal(${val.data_count}, (const char*)${val.data.pipe_data}.data()); + payload_str = make_intrusive(${val.data_count}, (const char*)${val.data.pipe_data}.data()); break; case SMB_UNKNOWN: - payload_str = new StringVal(${val.data_count}, (const char*)${val.data.unknown}.data()); + payload_str = make_intrusive(${val.data_count}, (const char*)${val.data.unknown}.data()); break; default: - payload_str = new StringVal(${val.data_count}, (const char*)${val.data.data}.data()); + payload_str = make_intrusive(${val.data_count}, (const char*)${val.data.data}.data()); break; } } if ( ! payload_str ) { - payload_str = val_mgr->GetEmptyString(); + payload_str = val_mgr->EmptyString(); } BifEvent::generate_smb1_transaction_secondary_request(bro_analyzer(), @@ -50,7 +50,7 @@ refine connection SMB_Conn += { BuildHeaderVal(header), args, parameters, - payload_str); + payload_str.release()); return true; %} diff --git a/src/analyzer/protocol/smb/smb1-com-transaction.pac b/src/analyzer/protocol/smb/smb1-com-transaction.pac index 0c2f128794..769e520b4d 100644 --- a/src/analyzer/protocol/smb/smb1-com-transaction.pac +++ b/src/analyzer/protocol/smb/smb1-com-transaction.pac @@ -5,19 +5,19 @@ enum Trans_subcommands { }; %code{ - StringVal* SMB_Conn::transaction_data_to_val(SMB1_transaction_data* payload) + IntrusivePtr SMB_Conn::transaction_data_to_val(SMB1_transaction_data* payload) { switch ( payload->trans_type() ) { case SMB_PIPE: - return bytestring_to_val(payload->pipe_data()); + return {AdoptRef{}, bytestring_to_val(payload->pipe_data())}; case SMB_UNKNOWN: - return bytestring_to_val(payload->unknown()); + return {AdoptRef{}, bytestring_to_val(payload->unknown())}; default: - return bytestring_to_val(payload->data()); + return {AdoptRef{}, bytestring_to_val(payload->data())}; } assert(false); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } %} @@ -26,7 +26,7 @@ refine connection SMB_Conn += { %member{ map is_file_a_pipe; - static StringVal* transaction_data_to_val(SMB1_transaction_data* payload); + static IntrusivePtr transaction_data_to_val(SMB1_transaction_data* payload); %} function get_is_file_a_pipe(id: uint16): bool @@ -55,12 +55,12 @@ refine connection SMB_Conn += { StringVal* parameters = new StringVal(${val.parameters}.length(), (const char*)${val.parameters}.data()); - StringVal* payload_str = nullptr; + IntrusivePtr payload_str; if ( ${val.data_count} > 0 ) payload_str = transaction_data_to_val(${val.data}); else - payload_str = val_mgr->GetEmptyString(); + payload_str = val_mgr->EmptyString(); BifEvent::generate_smb1_transaction_request(bro_analyzer(), bro_analyzer()->Conn(), @@ -68,7 +68,7 @@ refine connection SMB_Conn += { smb_string2stringval(${val.name}), ${val.sub_cmd}, parameters, - payload_str); + payload_str.release()); return true; %} @@ -80,18 +80,18 @@ refine connection SMB_Conn += { StringVal* parameters = new StringVal(${val.parameters}.length(), (const char*)${val.parameters}.data()); - StringVal* payload_str = nullptr; + IntrusivePtr payload_str; if ( ${val.data_count} > 0 ) payload_str = transaction_data_to_val(${val.data[0]}); else - payload_str = val_mgr->GetEmptyString(); + payload_str = val_mgr->EmptyString(); BifEvent::generate_smb1_transaction_response(bro_analyzer(), bro_analyzer()->Conn(), BuildHeaderVal(header), parameters, - payload_str); + payload_str.release()); return true; %} }; diff --git a/src/analyzer/protocol/smb/smb1-com-tree-connect-andx.pac b/src/analyzer/protocol/smb/smb1-com-tree-connect-andx.pac index 887c1d8bfa..eb3e9fedc5 100644 --- a/src/analyzer/protocol/smb/smb1-com-tree-connect-andx.pac +++ b/src/analyzer/protocol/smb/smb1-com-tree-connect-andx.pac @@ -23,7 +23,7 @@ refine connection SMB_Conn += { bro_analyzer()->Conn(), BuildHeaderVal(header), service_string, - ${val.byte_count} > ${val.service.a}->size() ? smb_string2stringval(${val.native_file_system[0]}) : val_mgr->GetEmptyString()); + ${val.byte_count} > ${val.service.a}->size() ? smb_string2stringval(${val.native_file_system[0]}) : val_mgr->EmptyString()->Ref()->AsStringVal()); else Unref(service_string); diff --git a/src/analyzer/protocol/socks/socks-analyzer.pac b/src/analyzer/protocol/socks/socks-analyzer.pac index 351c4003c7..24dc87bbc7 100644 --- a/src/analyzer/protocol/socks/socks-analyzer.pac +++ b/src/analyzer/protocol/socks/socks-analyzer.pac @@ -111,7 +111,7 @@ refine connection SOCKS_Conn += { ${request.command}, sa, val_mgr->GetPort(${request.port}, TRANSPORT_TCP), - val_mgr->GetEmptyString()); + val_mgr->EmptyString()->Ref()->AsStringVal()); else Unref(sa); diff --git a/src/broker/store.bif b/src/broker/store.bif index 26c6fa72cd..70e35fdae3 100644 --- a/src/broker/store.bif +++ b/src/broker/store.bif @@ -120,7 +120,7 @@ function Broker::__store_name%(h: opaque of Broker::Store%): string if ( ! h ) { builtin_error("invalid Broker store handle"); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } auto handle = static_cast(h); diff --git a/src/file_analysis/analyzer/x509/OCSP.cc b/src/file_analysis/analyzer/x509/OCSP.cc index 3e26861a2d..3eb9b423c9 100644 --- a/src/file_analysis/analyzer/x509/OCSP.cc +++ b/src/file_analysis/analyzer/x509/OCSP.cc @@ -89,10 +89,10 @@ static bool ocsp_add_cert_id(const OCSP_CERTID* cert_id, zeek::Args* vl, BIO* bi if ( ! res ) { reporter->Weird("OpenSSL failed to get OCSP_CERTID info"); - vl->emplace_back(AdoptRef{}, val_mgr->GetEmptyString()); - vl->emplace_back(AdoptRef{}, val_mgr->GetEmptyString()); - vl->emplace_back(AdoptRef{}, val_mgr->GetEmptyString()); - vl->emplace_back(AdoptRef{}, val_mgr->GetEmptyString()); + vl->emplace_back(val_mgr->EmptyString()); + vl->emplace_back(val_mgr->EmptyString()); + vl->emplace_back(val_mgr->EmptyString()); + vl->emplace_back(val_mgr->EmptyString()); return false; } @@ -215,8 +215,9 @@ typedef struct ocsp_basic_response_st { STACK_OF(X509) *certs; } OCSP_BASICRESP; */ -static StringVal* parse_basic_resp_sig_alg(OCSP_BASICRESP* basic_resp, - BIO* bio, char* buf, size_t buf_len) +static IntrusivePtr parse_basic_resp_sig_alg(OCSP_BASICRESP* basic_resp, + BIO* bio, char* buf, + size_t buf_len) { int der_basic_resp_len = 0; unsigned char* der_basic_resp_dat = nullptr; @@ -224,7 +225,7 @@ static StringVal* parse_basic_resp_sig_alg(OCSP_BASICRESP* basic_resp, der_basic_resp_len = i2d_OCSP_BASICRESP(basic_resp, &der_basic_resp_dat); if ( der_basic_resp_len <= 0 ) - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); const unsigned char* const_der_basic_resp_dat = der_basic_resp_dat; @@ -233,13 +234,13 @@ static StringVal* parse_basic_resp_sig_alg(OCSP_BASICRESP* basic_resp, if ( ! bseq ) { OPENSSL_free(der_basic_resp_dat); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } if ( sk_ASN1_TYPE_num(bseq) < 3 ) { OPENSSL_free(der_basic_resp_dat); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } auto constexpr sig_alg_idx = 1u; @@ -248,7 +249,7 @@ static StringVal* parse_basic_resp_sig_alg(OCSP_BASICRESP* basic_resp, if ( ASN1_TYPE_get(aseq_type) != V_ASN1_SEQUENCE ) { OPENSSL_free(der_basic_resp_dat); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } auto aseq_str = aseq_type->value.asn1_string; @@ -260,13 +261,13 @@ static StringVal* parse_basic_resp_sig_alg(OCSP_BASICRESP* basic_resp, if ( ! aseq ) { OPENSSL_free(der_basic_resp_dat); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } if ( sk_ASN1_TYPE_num(aseq) < 1 ) { OPENSSL_free(der_basic_resp_dat); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } auto constexpr alg_obj_idx = 0u; @@ -275,13 +276,13 @@ static StringVal* parse_basic_resp_sig_alg(OCSP_BASICRESP* basic_resp, if ( ASN1_TYPE_get(alg_obj_type) != V_ASN1_OBJECT ) { OPENSSL_free(der_basic_resp_dat); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } auto alg_obj = alg_obj_type->value.object; i2a_ASN1_OBJECT(bio, alg_obj); auto alg_len = BIO_read(bio, buf, buf_len); - auto rval = new StringVal(alg_len, buf); + auto rval = make_intrusive(alg_len, buf); BIO_reset(bio); OPENSSL_free(der_basic_resp_dat); @@ -521,7 +522,7 @@ void file_analysis::OCSP::ParseResponse(OCSP_RESPONSE *resp) else { reporter->Weird("OpenSSL failed to get OCSP responder id"); - vl.emplace_back(AdoptRef{}, val_mgr->GetEmptyString()); + vl.emplace_back(val_mgr->EmptyString()); } // producedAt @@ -625,7 +626,7 @@ void file_analysis::OCSP::ParseResponse(OCSP_RESPONSE *resp) vl.emplace_back(make_intrusive(len, buf)); BIO_reset(bio); #else - vl.emplace_back(AdoptRef{}, parse_basic_resp_sig_alg(basic_resp, bio, buf, sizeof(buf))); + vl.emplace_back(parse_basic_resp_sig_alg(basic_resp, bio, buf, sizeof(buf))); #endif //i2a_ASN1_OBJECT(bio, basic_resp->signature); diff --git a/src/file_analysis/analyzer/x509/X509Common.cc b/src/file_analysis/analyzer/x509/X509Common.cc index 1b26a86663..12abb5ecb0 100644 --- a/src/file_analysis/analyzer/x509/X509Common.cc +++ b/src/file_analysis/analyzer/x509/X509Common.cc @@ -316,7 +316,7 @@ IntrusivePtr file_analysis::X509Common::GetExtensionFromBIO(BIO* bio, if ( length == 0 ) { BIO_free_all(bio); - return {AdoptRef{}, val_mgr->GetEmptyString()}; + return val_mgr->EmptyString(); } char* buffer = (char*) malloc(length); diff --git a/src/file_analysis/analyzer/x509/functions.bif b/src/file_analysis/analyzer/x509/functions.bif index 572ef0bfec..20e610316d 100644 --- a/src/file_analysis/analyzer/x509/functions.bif +++ b/src/file_analysis/analyzer/x509/functions.bif @@ -192,7 +192,7 @@ function x509_get_certificate_string%(cert: opaque of x509, pem: bool &default=F auto ext_val = file_analysis::X509::GetExtensionFromBIO(bio); if ( ! ext_val ) - ext_val = {AdoptRef{}, val_mgr->GetEmptyString()}; + ext_val = val_mgr->EmptyString(); return ext_val.release(); %} diff --git a/src/logging/Manager.cc b/src/logging/Manager.cc index e9c305634a..a41b204369 100644 --- a/src/logging/Manager.cc +++ b/src/logging/Manager.cc @@ -741,7 +741,7 @@ bool Manager::Write(EnumVal* id, RecordVal* columns_arg) if ( filter->path_val ) path_arg = {NewRef{}, filter->path_val}; else - path_arg = {AdoptRef{}, val_mgr->GetEmptyString()}; + path_arg = val_mgr->EmptyString(); IntrusivePtr rec_arg; BroType* rt = filter->path_func->FType()->Args()->FieldType("rec"); diff --git a/src/strings.bif b/src/strings.bif index acbc7baa5a..3b51439210 100644 --- a/src/strings.bif +++ b/src/strings.bif @@ -952,7 +952,7 @@ function find_last%(str: string, re: pattern%) : string return new StringVal(n, (const char*) t); } - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); %} ## Returns a hex dump for given input data. The hex dump renders 16 bytes per @@ -997,13 +997,13 @@ function hexdump%(data_str: string%) : string unsigned data_size = data_str->Len(); if ( ! data ) - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); int num_lines = (data_size / 16) + 1; int len = num_lines * HEX_LINE_WIDTH; u_char* hex_data = new u_char[len + 1]; if ( ! hex_data ) - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); memset(hex_data, ' ', len); diff --git a/src/zeek.bif b/src/zeek.bif index 7073ec366a..9f8d2365a2 100644 --- a/src/zeek.bif +++ b/src/zeek.bif @@ -1655,7 +1655,7 @@ function cat_sep%(sep: string, def: string, ...%): string function fmt%(...%): string %{ if ( @ARGC@ == 0 ) - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); Val* fmt_v = @ARG@[0].get(); @@ -1674,13 +1674,13 @@ function fmt%(...%): string if ( n < static_cast(@ARGC@) - 1 ) { builtin_error("too many arguments for format", fmt_v); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } else if ( n >= static_cast(@ARGC@) ) { builtin_error("too few arguments for format", fmt_v); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } BroString* s = new BroString(1, d.TakeBytes(), d.Len()); @@ -2857,7 +2857,7 @@ function hexstr_to_bytestring%(hexstr: string%): string if ( len % 2 != 0 ) { reporter->Error("Hex string '%s' has invalid length (not divisible by 2)", hexstr->CheckString()); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } const char* bytes = hexstr->AsString()->CheckString(); @@ -2873,13 +2873,13 @@ function hexstr_to_bytestring%(hexstr: string%): string if ( res == EOF ) { reporter->Error("Hex string %s contains invalid input: %s", hexstr->CheckString(), strerror(errno)); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } else if ( res != 1 ) { reporter->Error("Could not read hex element from input %s", hexstr->CheckString()); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } } @@ -2905,7 +2905,7 @@ function encode_base64%(s: string, a: string &default=""%): string else { reporter->Error("Broker query has an invalid data store"); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } %} @@ -2927,7 +2927,7 @@ function decode_base64%(s: string, a: string &default=""%): string else { reporter->Error("error in decoding string %s", s->CheckString()); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } %} @@ -2951,7 +2951,7 @@ function decode_base64_conn%(cid: conn_id, s: string, a: string &default=""%): s if ( ! conn ) { builtin_error("connection ID not a known connection", cid); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } BroString* t = decode_base64(s->AsString(), a->AsString(), conn); @@ -2960,7 +2960,7 @@ function decode_base64_conn%(cid: conn_id, s: string, a: string &default=""%): s else { reporter->Error("error in decoding string %s", s->CheckString()); - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); } %} @@ -3327,7 +3327,7 @@ function lookup_connection%(cid: conn_id%): connection c->Assign(3, make_intrusive(network_time, TYPE_TIME)); c->Assign(4, make_intrusive(0.0, TYPE_INTERVAL)); c->Assign(5, make_intrusive(IntrusivePtr{NewRef{}, string_set})); // service - c->Assign(6, val_mgr->GetEmptyString()); // history + c->Assign(6, val_mgr->EmptyString()); // history return c; %} @@ -3398,7 +3398,7 @@ function get_current_packet%(%) : pcap_packet pkt->Assign(1, val_mgr->Count(0)); pkt->Assign(2, val_mgr->Count(0)); pkt->Assign(3, val_mgr->Count(0)); - pkt->Assign(4, val_mgr->GetEmptyString()); + pkt->Assign(4, val_mgr->EmptyString()); pkt->Assign(5, BifType::Enum::link_encap->GetVal(BifEnum::LINK_UNKNOWN)); return pkt; } @@ -4585,7 +4585,7 @@ function active_file%(f: file%): bool function get_file_name%(f: file%): string %{ if ( ! f ) - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); return new StringVal(f->Name()); %} @@ -4606,8 +4606,8 @@ function rotate_file%(f: file%): rotate_info // Record indicating error. info = new RecordVal(rotate_info); - info->Assign(0, val_mgr->GetEmptyString()); - info->Assign(1, val_mgr->GetEmptyString()); + info->Assign(0, val_mgr->EmptyString()); + info->Assign(1, val_mgr->EmptyString()); info->Assign(2, make_intrusive(0.0, TYPE_TIME)); info->Assign(3, make_intrusive(0.0, TYPE_TIME)); @@ -4647,8 +4647,8 @@ function rotate_file_by_name%(f: string%): rotate_info if ( ! file ) { // Record indicating error. - info->Assign(0, val_mgr->GetEmptyString()); - info->Assign(1, val_mgr->GetEmptyString()); + info->Assign(0, val_mgr->EmptyString()); + info->Assign(1, val_mgr->EmptyString()); info->Assign(2, make_intrusive(0.0, TYPE_TIME)); info->Assign(3, make_intrusive(0.0, TYPE_TIME)); return info; diff --git a/src/zeekygen/zeekygen.bif b/src/zeekygen/zeekygen.bif index 289054f076..877fa5ba11 100644 --- a/src/zeekygen/zeekygen.bif +++ b/src/zeekygen/zeekygen.bif @@ -28,7 +28,7 @@ function get_identifier_comments%(name: string%): string IdentifierInfo* d = zeekygen_mgr->GetIdentifierInfo(name->CheckString()); if ( ! d ) - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); return comments_to_val(d->GetComments()); %} @@ -48,7 +48,7 @@ function get_script_comments%(name: string%): string ScriptInfo* d = zeekygen_mgr->GetScriptInfo(name->CheckString()); if ( ! d ) - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); return comments_to_val(d->GetComments()); %} @@ -66,7 +66,7 @@ function get_package_readme%(name: string%): string PackageInfo* d = zeekygen_mgr->GetPackageInfo(name->CheckString()); if ( ! d ) - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); return comments_to_val(d->GetReadme()); %} @@ -86,14 +86,14 @@ function get_record_field_comments%(name: string%): string size_t i = accessor.find('$'); if ( i > accessor.size() - 2 ) - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); string id = accessor.substr(0, i); IdentifierInfo* d = zeekygen_mgr->GetIdentifierInfo(id); if ( ! d ) - return val_mgr->GetEmptyString(); + return val_mgr->EmptyString(); string field = accessor.substr(i + 1); return comments_to_val(d->GetFieldComments(field));