From: huica Date: Tue, 22 Sep 2015 16:20:07 +0000 (-0400) Subject: Clear warnings and clean interfaces X-Git-Tag: 3.0.0-233~826^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2893cd760be782c6d3fb767aa35db728062e7ff1;p=thirdparty%2Fsnort3.git Clear warnings and clean interfaces --- diff --git a/src/file_api/file_flows.cc b/src/file_api/file_flows.cc index 26fb9fbfb..af8633373 100644 --- a/src/file_api/file_flows.cc +++ b/src/file_api/file_flows.cc @@ -224,7 +224,7 @@ bool FileFlows::file_process(FileContext* context, const uint8_t* file_data, * false: ignore this file */ bool FileFlows::file_process(const uint8_t* file_data, int data_size, - FilePosition position, bool upload, bool suspend_block_verdict) + FilePosition position, bool upload) { FileContext* context; FileDirection direction = upload ? FILE_UPLOAD:FILE_DOWNLOAD; diff --git a/src/file_api/file_flows.h b/src/file_api/file_flows.h index 98db6fed8..5c49e4a72 100644 --- a/src/file_api/file_flows.h +++ b/src/file_api/file_flows.h @@ -50,7 +50,7 @@ public: // This is used when there is only one file per session bool file_process(const uint8_t* file_data, int data_size, - FilePosition position, bool upload, bool suspend_block_verdict); + FilePosition position, bool upload); // This is used for each file context. Support multiple files per session bool file_process(FileContext* context, const uint8_t* file_data, int data_size, diff --git a/src/mime/decode_base.cc b/src/mime/decode_base.cc index 0ee4bd6ad..b422476de 100644 --- a/src/mime/decode_base.cc +++ b/src/mime/decode_base.cc @@ -39,14 +39,14 @@ int DataDecode::get_detection_depth() if (!decode_depth) return decoded_bytes; // exceeded depth before (decode_bytes_read has been updated) - else if (decode_depth < decode_bytes_read - decoded_bytes) + else if (decode_depth < (int64_t)decode_bytes_read - decoded_bytes) return 0; // lower than depth - else if (decode_depth > decode_bytes_read) + else if (decode_depth > (int64_t)decode_bytes_read) return decoded_bytes; // cut off else - return (decode_depth + decoded_bytes - decode_bytes_read); + return (decode_depth + (int64_t )decoded_bytes - decode_bytes_read); } int DataDecode::get_decoded_data(uint8_t** buf, uint32_t* size) @@ -60,6 +60,8 @@ int DataDecode::get_decoded_data(uint8_t** buf, uint32_t* size) *buf = decodePtr; else return 0; + + return (*size); } #define MAX_DEPTH 65536 diff --git a/src/mime/decode_qp.cc b/src/mime/decode_qp.cc index 6a80e9964..897971b07 100644 --- a/src/mime/decode_qp.cc +++ b/src/mime/decode_qp.cc @@ -35,7 +35,6 @@ void QPDecode::reset_decode_state() DecodeResult QPDecode::decode_data(const uint8_t* start, const uint8_t* end) { uint32_t act_encode_size = 0, act_decode_size = 0, bytes_read = 0; - uint32_t i = 0; if (!buffer->check_restore_buffer()) { diff --git a/src/mime/decode_uu.cc b/src/mime/decode_uu.cc index 95f7b35cd..b0e571c52 100644 --- a/src/mime/decode_uu.cc +++ b/src/mime/decode_uu.cc @@ -39,7 +39,6 @@ void UUDecode::reset_decode_state() DecodeResult UUDecode::decode_data(const uint8_t* start, const uint8_t* end) { uint32_t act_encode_size = 0, act_decode_size = 0, bytes_read = 0; - uint32_t i = 0; if (!buffer->check_restore_buffer()) { diff --git a/src/mime/file_mime_log.cc b/src/mime/file_mime_log.cc index 26d1ecc1a..368091744 100644 --- a/src/mime/file_mime_log.cc +++ b/src/mime/file_mime_log.cc @@ -195,14 +195,12 @@ int MailLogState::log_email_hdrs(const uint8_t* start, int length) { int log_avail = 0; uint8_t* log_buf; - uint32_t logged; int ret = 0; if (length <= 0) return -1; log_avail = log_depth - hdrs_logged; - logged = hdrs_logged; log_buf = (uint8_t*)emailHdrs; if (log_avail <= 0) diff --git a/src/mime/file_mime_process.cc b/src/mime/file_mime_process.cc index 3157c1ddb..7bf2dc6ce 100644 --- a/src/mime/file_mime_process.cc +++ b/src/mime/file_mime_process.cc @@ -316,7 +316,7 @@ const uint8_t* MimeSession::process_mime_header(const uint8_t* ptr, state_flags &= ~MIME_FLAG_DATA_HEADER_CONT; } - int ret = handle_header_line(config, ptr, eol, max_header_name_len); + int ret = handle_header_line(ptr, eol, max_header_name_len); if (ret < 0) return NULL; else if (ret > 0) @@ -467,7 +467,7 @@ const uint8_t* MimeSession::process_mime_body(const uint8_t* ptr, { if (decode_state->decode_data(attach_start, attach_end) == DECODE_FAIL ) { - decode_alert(decode_state); + decode_alert(); } } } @@ -514,7 +514,7 @@ const uint8_t* MimeSession::process_mime_data_paf(Flow* flow, const uint8_t* sta { /* if we're normalizing and not ignoring data copy data end marker * and dot to alt buffer */ - if (normalize_data(config, start, end) < 0) + if (normalize_data(start, end) < 0) return NULL; reset_mime_state(); @@ -561,7 +561,7 @@ const uint8_t* MimeSession::process_mime_data_paf(Flow* flow, const uint8_t* sta return NULL; } - if (normalize_data(config, start, end) < 0) + if (normalize_data(start, end) < 0) return NULL; /* now we shouldn't have to worry about copying any data to the alt buffer * * only mime headers if we find them and only if we're ignoring data */ @@ -599,7 +599,7 @@ const uint8_t* MimeSession::process_mime_data_paf(Flow* flow, const uint8_t* sta /*Process file type/file signature*/ FileFlows* file_flows = FileFlows::get_file_flows(flow); - if (file_flows && file_flows->file_process(buffer, buf_size, position, upload, false) + if (file_flows && file_flows->file_process(buffer, buf_size, position, upload) && (isFileStart(position)) && log_state) { log_state->set_file_name_from_log(flow); diff --git a/src/mime/file_mime_process.h b/src/mime/file_mime_process.h index 57f73ea08..73202e4b0 100644 --- a/src/mime/file_mime_process.h +++ b/src/mime/file_mime_process.h @@ -64,10 +64,12 @@ public: void set_data_state(int); MailLogState* get_log_state(); +protected: + MimeDecode* decode_state = NULL; + private: int data_state = STATE_DATA_INIT; int state_flags = 0; - MimeDecode* decode_state = NULL; MimeDataPafInfo mime_boundary; DecodeConfig* decode_conf = NULL; MailLogConfig* log_config = NULL; @@ -75,17 +77,11 @@ private: // SMTP, IMAP, POP might have different implementation for this void* config = NULL; - virtual int handle_header_line(void* conf, const uint8_t* ptr, const uint8_t* eol, - int max_header_len) - { return 0; } - virtual int normalize_data(void* conf, const uint8_t* ptr, const uint8_t* data_end) - { return 0; } - virtual void decode_alert(MimeDecode* decode_state) - { } - virtual void reset_state(void* ssn) - { } - virtual bool is_end_of_data(void* ssn) - { return false; } + virtual int handle_header_line(const uint8_t*, const uint8_t*, int) { return 0; } + virtual int normalize_data(const uint8_t* , const uint8_t* ) { return 0; } + virtual void decode_alert() {} + virtual void reset_state(Flow* ) {} + virtual bool is_end_of_data(Flow* ) { return false; } void reset_mime_state(); void setup_decode(const char* data, int size, bool cnt_xf); diff --git a/src/service_inspectors/ftp_telnet/ftp_data.cc b/src/service_inspectors/ftp_telnet/ftp_data.cc index 927a39bd7..f1cf5e47b 100644 --- a/src/service_inspectors/ftp_telnet/ftp_data.cc +++ b/src/service_inspectors/ftp_telnet/ftp_data.cc @@ -78,7 +78,7 @@ static void FTPDataProcess( return; status = file_flows->file_process(file_data, data_length, - data_ssn->position, data_ssn->direction, false); + data_ssn->position, data_ssn->direction); /* Filename needs to be set AFTER the first call to file_process( ) */ if (data_ssn->filename && !(data_ssn->packet_flags & FTPDATA_FLG_FILENAME_SET)) diff --git a/src/service_inspectors/http_inspect/hi_main.cc b/src/service_inspectors/http_inspect/hi_main.cc index 018ddaf70..fabb52bfb 100644 --- a/src/service_inspectors/http_inspect/hi_main.cc +++ b/src/service_inspectors/http_inspect/hi_main.cc @@ -666,7 +666,7 @@ int HttpInspectMain(HTTPINSPECT_CONF* conf, Packet* p) { FileFlows* file_flows = FileFlows::get_file_flows(p->flow); file_flows->file_process((uint8_t*)p->data, p->dsize, - getFilePoistion(p), true, false); + getFilePoistion(p), true); } } return iRet; @@ -792,7 +792,7 @@ int HttpInspectMain(HTTPINSPECT_CONF* conf, Packet* p) if (file_flows && file_flows->file_process( (uint8_t*)session->client.request.post_raw, (uint16_t)session->client.request.post_raw_size, - getFilePoistion(p), true, false)) + getFilePoistion(p), true)) { setFileName(p); } @@ -828,8 +828,7 @@ int HttpInspectMain(HTTPINSPECT_CONF* conf, Packet* p) { FileFlows* file_flows = FileFlows::get_file_flows(p->flow); file_flows->file_process((uint8_t*)p->data, p->dsize, - getFilePoistion(p), - true, false); + getFilePoistion(p), true); } } @@ -1081,7 +1080,7 @@ int HttpInspectMain(HTTPINSPECT_CONF* conf, Packet* p) && file_flows && file_flows->file_process( (uint8_t*)session->server.response.body, (uint16_t)session->server.response.body_size, - getFilePoistion(p), false, false)) + getFilePoistion(p), false)) { setFileName(p); } diff --git a/src/service_inspectors/imap/imap.cc b/src/service_inspectors/imap/imap.cc index 14d463e4a..971ed6e25 100644 --- a/src/service_inspectors/imap/imap.cc +++ b/src/service_inspectors/imap/imap.cc @@ -128,8 +128,6 @@ IMAPSearch imap_cmd_search[CMD_LAST]; THREAD_LOCAL const IMAPSearch* imap_current_search = NULL; THREAD_LOCAL IMAPSearchInfo imap_search_info; -static void POP_ResetState(void*); - ImapFlowData::ImapFlowData() : FlowData(flow_id) { memset(&session, 0, sizeof(session)); } @@ -211,9 +209,9 @@ void IMAP_SearchFree(void) delete imap_resp_search_mpse; } -static void IMAP_ResetState(void* ssn) +static void IMAP_ResetState(Flow* ssn) { - IMAPData* imap_ssn = get_session_data((Flow*)ssn); + IMAPData* imap_ssn = get_session_data(ssn); imap_ssn->state = STATE_COMMAND; imap_ssn->state_flags = 0; imap_ssn->body_read = imap_ssn->body_len = 0; @@ -684,9 +682,8 @@ static void snort_imap(IMAP_PROTO_CONF* config, Packet* p) } } -void ImapMime::decode_alert(MimeDecode* ds) +void ImapMime::decode_alert() { - MimeDecode* decode_state = (MimeDecode*)ds; switch ( decode_state->get_decode_type() ) { case DECODE_B64: @@ -704,13 +701,13 @@ void ImapMime::decode_alert(MimeDecode* ds) } } -void ImapMime::reset_state(void* ssn) +void ImapMime::reset_state(Flow* ssn) { IMAP_ResetState(ssn); } -bool ImapMime::is_end_of_data(void* session) +bool ImapMime::is_end_of_data(Flow* session) { return imap_is_data_end(session); } diff --git a/src/service_inspectors/imap/imap.h b/src/service_inspectors/imap/imap.h index a3b49c128..c172662f8 100644 --- a/src/service_inspectors/imap/imap.h +++ b/src/service_inspectors/imap/imap.h @@ -150,9 +150,9 @@ class ImapMime : public MimeSession { using MimeSession::MimeSession; private: - void decode_alert(MimeDecode* decode_state) override; - void reset_state(void* ssn) override; - bool is_end_of_data(void* ssn) override; + void decode_alert() override; + void reset_state(Flow* ssn) override; + bool is_end_of_data(Flow* ssn) override; }; struct IMAPData diff --git a/src/service_inspectors/imap/imap_paf.cc b/src/service_inspectors/imap/imap_paf.cc index 548eb389e..7393d218c 100644 --- a/src/service_inspectors/imap/imap_paf.cc +++ b/src/service_inspectors/imap/imap_paf.cc @@ -521,9 +521,8 @@ StreamSplitter::Status ImapSplitter::scan( } } -bool imap_is_data_end(void* session) +bool imap_is_data_end(Flow* ssn) { - Flow* ssn = (Flow*)session; ImapPafData* s = get_state(ssn, true); return s->end_of_data; } diff --git a/src/service_inspectors/imap/imap_paf.h b/src/service_inspectors/imap/imap_paf.h index 54576d80b..e8afc1614 100644 --- a/src/service_inspectors/imap/imap_paf.h +++ b/src/service_inspectors/imap/imap_paf.h @@ -84,7 +84,7 @@ public: }; // Function: Check if IMAP data end is reached -bool imap_is_data_end(void* ssn); +bool imap_is_data_end(Flow* ssn); #endif diff --git a/src/service_inspectors/nhttp_inspect/nhttp_msg_body.cc b/src/service_inspectors/nhttp_inspect/nhttp_msg_body.cc index 96f9f35fd..f3516bc12 100644 --- a/src/service_inspectors/nhttp_inspect/nhttp_msg_body.cc +++ b/src/service_inspectors/nhttp_inspect/nhttp_msg_body.cc @@ -94,7 +94,7 @@ void NHttpMsgBody::do_file_processing() FileFlows* file_flows = FileFlows::get_file_flows(flow); if (file_flows->file_process(file_data.start, fp_length, - file_position, false, false)) + file_position, false)) { session_data->file_depth_remaining[source_id] -= fp_length; diff --git a/src/service_inspectors/nhttp_inspect/nhttp_stream_splitter.cc b/src/service_inspectors/nhttp_inspect/nhttp_stream_splitter.cc index 6e7ed99d3..668c95c07 100644 --- a/src/service_inspectors/nhttp_inspect/nhttp_stream_splitter.cc +++ b/src/service_inspectors/nhttp_inspect/nhttp_stream_splitter.cc @@ -493,7 +493,7 @@ bool NHttpStreamSplitter::finish(Flow* flow) if (source_id == SRC_SERVER) { FileFlows* file_flows = FileFlows::get_file_flows(flow); - file_flows->file_process(nullptr, 0, SNORT_FILE_END, false, false); + file_flows->file_process(nullptr, 0, SNORT_FILE_END, false); } else { diff --git a/src/service_inspectors/pop/pop.cc b/src/service_inspectors/pop/pop.cc index 7c18550b1..3de4a4130 100644 --- a/src/service_inspectors/pop/pop.cc +++ b/src/service_inspectors/pop/pop.cc @@ -83,7 +83,7 @@ THREAD_LOCAL const POPSearch* pop_current_search = NULL; THREAD_LOCAL POPSearchInfo pop_search_info; static void snort_pop(POP_PROTO_CONF* GlobalConf, Packet* p); -static void POP_ResetState(void*); +static void POP_ResetState(Flow*); PopFlowData::PopFlowData() : FlowData(flow_id) { memset(&session, 0, sizeof(session)); } @@ -164,9 +164,9 @@ void POP_SearchFree(void) delete pop_resp_search_mpse; } -static void POP_ResetState(void* ssn) +static void POP_ResetState(Flow* ssn) { - POPData* pop_ssn = get_session_data((Flow*)ssn); + POPData* pop_ssn = get_session_data(ssn); pop_ssn->state = STATE_COMMAND; pop_ssn->prev_response = 0; pop_ssn->state_flags = 0; @@ -617,9 +617,8 @@ static void snort_pop(POP_PROTO_CONF* config, Packet* p) } } -void PopMime::decode_alert(MimeDecode* ds) +void PopMime::decode_alert() { - MimeDecode* decode_state = (MimeDecode*)ds; switch ( decode_state->get_decode_type() ) { case DECODE_B64: @@ -637,13 +636,13 @@ void PopMime::decode_alert(MimeDecode* ds) } } -void PopMime::reset_state(void* ssn) +void PopMime::reset_state(Flow* ssn) { POP_ResetState(ssn); } -bool PopMime::is_end_of_data(void* session) +bool PopMime::is_end_of_data(Flow* session) { return pop_is_data_end(session); } diff --git a/src/service_inspectors/pop/pop.h b/src/service_inspectors/pop/pop.h index 50354ac56..f9a4e8124 100644 --- a/src/service_inspectors/pop/pop.h +++ b/src/service_inspectors/pop/pop.h @@ -105,9 +105,9 @@ class PopMime : public MimeSession { using MimeSession::MimeSession; private: - void decode_alert(MimeDecode* decode_state) override; - void reset_state(void* ssn) override; - bool is_end_of_data(void* ssn) override; + void decode_alert() override; + void reset_state(Flow* ssn) override; + bool is_end_of_data(Flow* ssn) override; }; struct POPData diff --git a/src/service_inspectors/pop/pop_paf.cc b/src/service_inspectors/pop/pop_paf.cc index 89c41b6da..46d338ed4 100644 --- a/src/service_inspectors/pop/pop_paf.cc +++ b/src/service_inspectors/pop/pop_paf.cc @@ -410,9 +410,8 @@ StreamSplitter::Status PopSplitter::scan( } } -bool pop_is_data_end(void* session) +bool pop_is_data_end(Flow* ssn) { - Flow* ssn = (Flow*)session; PopPafData* s = get_state(ssn, false); return s->end_of_data; } diff --git a/src/service_inspectors/pop/pop_paf.h b/src/service_inspectors/pop/pop_paf.h index 7ecf5b71f..6717763f9 100644 --- a/src/service_inspectors/pop/pop_paf.h +++ b/src/service_inspectors/pop/pop_paf.h @@ -80,7 +80,7 @@ public: }; // Function: Callback to check if POP data end is reached -bool pop_is_data_end(void* ssn); +bool pop_is_data_end(Flow* ssn); #endif diff --git a/src/service_inspectors/smtp/smtp.cc b/src/service_inspectors/smtp/smtp.cc index f64279d07..b175f5d78 100644 --- a/src/service_inspectors/smtp/smtp.cc +++ b/src/service_inspectors/smtp/smtp.cc @@ -161,8 +161,7 @@ THREAD_LOCAL const SMTPSearch* smtp_current_search = NULL; THREAD_LOCAL SMTPSearchInfo smtp_search_info; static void snort_smtp(SMTP_PROTO_CONF* GlobalConf, Packet* p); -static void SMTP_ResetState(void*); -void SMTP_DecodeAlert(void* ds); +static void SMTP_ResetState(Flow*); SmtpFlowData::SmtpFlowData() : FlowData(flow_id) { memset(&session, 0, sizeof(session)); } @@ -487,9 +486,9 @@ void SMTP_PrintConfig(SMTP_PROTO_CONF *config) } } -static void SMTP_ResetState(void* ssn) +static void SMTP_ResetState(Flow* ssn) { - SMTPData* smtp_ssn = get_session_data((Flow*)ssn); + SMTPData* smtp_ssn = get_session_data(ssn); smtp_ssn->state = STATE_COMMAND; smtp_ssn->state_flags = 0; } @@ -1379,7 +1378,7 @@ static void SMTP_RegXtraDataFuncs(SMTP_PROTO_CONF* config) config->xtra_ehdrs_id = stream.reg_xtra_data_cb(SMTP_GetEmailHdrs); } -int SmtpMime::handle_header_line(void* conf, const uint8_t* ptr, const uint8_t* eol, +int SmtpMime::handle_header_line(const uint8_t* ptr, const uint8_t* eol, int max_header_len) { int ret; @@ -1418,7 +1417,7 @@ int SmtpMime::handle_header_line(void* conf, const uint8_t* ptr, const uint8_t* return 0; } -int SmtpMime::normalize_data(void* conf, const uint8_t* ptr, const uint8_t* data_end) +int SmtpMime::normalize_data(const uint8_t* ptr, const uint8_t* data_end) { /* if we're ignoring data and not already normalizing, copy everything * up to here into alt buffer so detection engine doesn't have @@ -1437,9 +1436,8 @@ int SmtpMime::normalize_data(void* conf, const uint8_t* ptr, const uint8_t* data return 0; } -void SmtpMime::decode_alert(MimeDecode* ds) +void SmtpMime::decode_alert() { - MimeDecode* decode_state = (MimeDecode*)ds; switch ( decode_state->get_decode_type() ) { case DECODE_B64: @@ -1457,13 +1455,13 @@ void SmtpMime::decode_alert(MimeDecode* ds) } } -void SmtpMime::reset_state(void* ssn) +void SmtpMime::reset_state(Flow* ssn) { SMTP_ResetState(ssn); } -bool SmtpMime::is_end_of_data(void* session) +bool SmtpMime::is_end_of_data(Flow* session) { return smtp_is_data_end(session); } diff --git a/src/service_inspectors/smtp/smtp.h b/src/service_inspectors/smtp/smtp.h index 38d736139..7d8f660a6 100644 --- a/src/service_inspectors/smtp/smtp.h +++ b/src/service_inspectors/smtp/smtp.h @@ -147,12 +147,12 @@ public: using MimeSession::MimeSession; SMTP_PROTO_CONF* config; private: - int handle_header_line(void* conf, const uint8_t* ptr, const uint8_t* eol, + int handle_header_line(const uint8_t* ptr, const uint8_t* eol, int max_header_len) override; - int normalize_data(void* conf, const uint8_t* ptr, const uint8_t* data_end) override; - void decode_alert(MimeDecode* decode_state) override; - void reset_state(void* ssn) override; - bool is_end_of_data(void* ssn) override; + int normalize_data(const uint8_t* ptr, const uint8_t* data_end) override; + void decode_alert() override; + void reset_state(Flow* ssn) override; + bool is_end_of_data(Flow* ssn) override; }; struct SMTPData diff --git a/src/service_inspectors/smtp/smtp_paf.cc b/src/service_inspectors/smtp/smtp_paf.cc index 91112c9bb..18002b4e0 100644 --- a/src/service_inspectors/smtp/smtp_paf.cc +++ b/src/service_inspectors/smtp/smtp_paf.cc @@ -369,9 +369,8 @@ StreamSplitter::Status SmtpSplitter::scan( } } -bool smtp_is_data_end(void* session) +bool smtp_is_data_end(Flow* ssn) { - Flow* ssn = (Flow*)session; SmtpPafData* s = get_state(ssn, true); return s->end_of_data; } diff --git a/src/service_inspectors/smtp/smtp_paf.h b/src/service_inspectors/smtp/smtp_paf.h index 4ee484b94..8eaa8124a 100644 --- a/src/service_inspectors/smtp/smtp_paf.h +++ b/src/service_inspectors/smtp/smtp_paf.h @@ -78,6 +78,6 @@ public: }; // Function: Check if IMAP data end is reached -bool smtp_is_data_end(void* ssn); +bool smtp_is_data_end(Flow* ssn); #endif diff --git a/src/stream/file/file_session.cc b/src/stream/file/file_session.cc index 120e52b57..48cf57a51 100644 --- a/src/stream/file/file_session.cc +++ b/src/stream/file/file_session.cc @@ -81,7 +81,7 @@ int FileSession::process(Packet* p) FileFlows* file_flows = FileFlows::get_file_flows(p->flow); if (file_flows) - file_flows->file_process((uint8_t*)p->data, p->dsize, position(p), c->upload, false); + file_flows->file_process((uint8_t*)p->data, p->dsize, position(p), c->upload); set_file_data((uint8_t*)p->data, p->dsize); MODULE_PROFILE_END(file_ssn_stats);