From: Russ Combs Date: Wed, 11 Jun 2014 15:46:08 +0000 (-0400) Subject: fixed some xcode static analysis issues X-Git-Tag: 3.0.0-233~1491 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cc1109fa27328e1d7fa2642a2ae447937e0a5046;p=thirdparty%2Fsnort3.git fixed some xcode static analysis issues --- diff --git a/ChangeLog b/ChangeLog index bcf9720b5..4d48623d9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ 87 -- renamed api function typedefs to camel case for consistency and to match style guide +-- fixed some Xcode static analysis issues 86 -- pulled in tom's latest nhttp_inpsect code diff --git a/src/detection/fpdetect.cc b/src/detection/fpdetect.cc index 1724f98c3..0f4c3bf38 100644 --- a/src/detection/fpdetect.cc +++ b/src/detection/fpdetect.cc @@ -561,7 +561,7 @@ static int rule_tree_match( void * id, void *tree, int index, void * data, void eval_data.p->packet_flags |= PKT_IP_RULE_2ND; /* Recurse, and evaluate with the inner IP */ - rval = rule_tree_match(id, tree, index, data, NULL); + rule_tree_match(id, tree, index, data, NULL); eval_data.p->packet_flags &= ~PKT_IP_RULE_2ND; eval_data.p->packet_flags |= PKT_IP_RULE; diff --git a/src/file_api/file_service.cc b/src/file_api/file_service.cc index 0365f10fd..ae3e9a2b5 100644 --- a/src/file_api/file_service.cc +++ b/src/file_api/file_service.cc @@ -327,8 +327,8 @@ static void printFileContext (FileContext* context) { used = snprintf(cur, unused, "\nProcessed size: %u\n", (unsigned int)context->processed_bytes); - unused -= used; - cur += used; + //unused -= used; + //cur += used; } buf[sizeof(buf) - 1] = '\0'; diff --git a/src/flow/flow_key.cc b/src/flow/flow_key.cc index cbb9127ca..bf38ca746 100644 --- a/src/flow/flow_key.cc +++ b/src/flow/flow_key.cc @@ -282,8 +282,8 @@ uint32_t FlowKey::hash(SFHASHFCN*, unsigned char *d, int) { b += tmp; /* mpls label */ } - offset += 8; /* skip past vlan/proto/ipver & mpls label */ #ifdef HAVE_DAQ_ADDRESS_SPACE_ID + offset += 8; /* skip past vlan/proto/ipver & mpls label */ tmp2 = *(uint32_t*)(d+offset); /* after offset that has been moved */ c += tmp2; /* address space id and 16bits of zero'd pad */ #endif diff --git a/src/hash/sfxhash.cc b/src/hash/sfxhash.cc index 3a48c5d5e..8825fc43a 100644 --- a/src/hash/sfxhash.cc +++ b/src/hash/sfxhash.cc @@ -1059,8 +1059,6 @@ SO_PUBLIC int sfxhash_remove( SFXHASH * t, void * key) /* Modulus is slow */ index = hashkey & (t->nrows - 1); - hnode = t->table[index]; - for( hnode=t->table[index]; hnode; hnode=hnode->next ) { if( !t->sfhashfcn->keycmp_fcn(hnode->key,key,t->keysize) ) diff --git a/src/ips_options/ips_byte_jump.cc b/src/ips_options/ips_byte_jump.cc index ee6a8a926..93000ed53 100644 --- a/src/ips_options/ips_byte_jump.cc +++ b/src/ips_options/ips_byte_jump.cc @@ -249,7 +249,7 @@ int ByteJumpOption::eval(Packet *p) /* save off whatever our ending pointer is */ end_ptr = start_ptr + dsize; - base_ptr = start_ptr; + //base_ptr = start_ptr; /* Get values from byte_extract variables, if present. */ if (bjd->offset_var >= 0 && bjd->offset_var < NUM_BYTE_EXTRACT_VARS) diff --git a/src/ips_options/ips_byte_test.cc b/src/ips_options/ips_byte_test.cc index e06e4aebb..c196bb9c6 100644 --- a/src/ips_options/ips_byte_test.cc +++ b/src/ips_options/ips_byte_test.cc @@ -289,7 +289,7 @@ int ByteTestOption::eval(Packet *p) start_ptr = (char *) p->data; } - base_ptr = start_ptr; + //base_ptr = start_ptr; end_ptr = start_ptr + dsize; DEBUG_WRAP(DebugMessage(DEBUG_PATTERN_MATCH, diff --git a/src/ips_options/ips_content.cc b/src/ips_options/ips_content.cc index 0e98574d2..5b0f1a1b7 100644 --- a/src/ips_options/ips_content.cc +++ b/src/ips_options/ips_content.cc @@ -575,7 +575,7 @@ static int uniSearchReal(const char *data, int dlen, PatternMatchData *pmd, int int success = 0; const char *start_ptr = data; const char *end_ptr = data + dlen; - const char *base_ptr = start_ptr; + const char *base_ptr;// = start_ptr; uint32_t extract_offset, extract_depth, extract_distance, extract_within; if(pmd->use_doe != 1) diff --git a/src/ips_options/ips_isdataat.cc b/src/ips_options/ips_isdataat.cc index ce54eb7d8..5e6a0e67f 100644 --- a/src/ips_options/ips_isdataat.cc +++ b/src/ips_options/ips_isdataat.cc @@ -202,7 +202,7 @@ int IsDataAtOption::eval(Packet *p) start_ptr = p->data; } - base_ptr = start_ptr; + //base_ptr = start_ptr; end_ptr = start_ptr + dsize; if((isdata->flags & ISDATAAT_RELATIVE_FLAG) && doe_ptr) diff --git a/src/ips_options/ips_pcre.cc b/src/ips_options/ips_pcre.cc index 091bc5926..63cff4396 100644 --- a/src/ips_options/ips_pcre.cc +++ b/src/ips_options/ips_pcre.cc @@ -271,7 +271,7 @@ int PcreOption::eval(Packet *p) start_ptr = p->data; } - base_ptr = start_ptr; + //base_ptr = start_ptr; end_ptr = start_ptr + dsize; /* doe_ptr's would be set by the previous content option */ diff --git a/src/log/log_text.cc b/src/log/log_text.cc index 5fca16ddf..3d2c26110 100644 --- a/src/log/log_text.cc +++ b/src/log/log_text.cc @@ -1462,10 +1462,10 @@ void LogNetData (TextLog* log, const uint8_t* data, const int len, Packet *p) int offset = 0; char conv[] = "0123456789ABCDEF"; /* xlation lookup table */ - int next_layer, ip_start, ip_ob_start, ip_ob_end, byte_pos, char_pos; + int ip_start, ip_ob_start, ip_ob_end, byte_pos, char_pos; int i; - next_layer = ip_start = byte_pos = char_pos = 0; + ip_start = byte_pos = char_pos = 0; ip_ob_start = ip_ob_end = -1; @@ -1494,7 +1494,7 @@ void LogNetData (TextLog* log, const uint8_t* data, const int len, Packet *p) if(p && ScObfuscate() ) { - next_layer = p->next_layer; + int next_layer = p->next_layer; for ( i = 0; i < next_layer; i++ ) { if ( p->layers[i].proto == PROTO_IP4 @@ -1523,8 +1523,6 @@ void LogNetData (TextLog* log, const uint8_t* data, const int len, Packet *p) /* loop thru the whole buffer */ while ( pb < end ) { - i = 0; - if (ScVerboseByteDump()) { TextLog_Print(log, "0x%04X: ", offset); diff --git a/src/log/sf_textlog.cc b/src/log/sf_textlog.cc index 4bf9afa92..8fdc52dfd 100644 --- a/src/log/sf_textlog.cc +++ b/src/log/sf_textlog.cc @@ -89,6 +89,7 @@ TextLog* TextLog_Init ( if ( !txt ) { FatalError("Unable to allocate a TextLog(%u)!\n", maxBuf); + return nullptr; } txt->name = name ? SnortStrdup(name) : NULL; txt->file = TextLog_Open(txt->name); diff --git a/src/managers/event_manager.cc b/src/managers/event_manager.cc index c84c363c2..4c8106843 100644 --- a/src/managers/event_manager.cc +++ b/src/managers/event_manager.cc @@ -185,7 +185,10 @@ void EventManager::instantiate( Output* p = get_out(name); if ( !mod || !p ) + { FatalError("unknown logger %s\n", name); + return; + } // emulate a config like name = { } mod->begin(name, 0, sc); diff --git a/src/network_inspectors/port_scan/ipobj.cc b/src/network_inspectors/port_scan/ipobj.cc index 580747bd5..fb48a16c5 100644 --- a/src/network_inspectors/port_scan/ipobj.cc +++ b/src/network_inspectors/port_scan/ipobj.cc @@ -321,7 +321,8 @@ static int ip_parse(char *ipstr, sfip_t *ip, char *not_flag, PORTSET *portset, c /* Just to get the IP string out of the way */ char* lasts = nullptr; - port_str = strtok_r(ipstr, " \t", &lasts); + strtok_r(ipstr, " \t", &lasts); + /* Is either the port after the 1st space, or NULL */ port_str = strtok_r(NULL, " \t", &lasts); diff --git a/src/network_inspectors/port_scan/port_scan.cc b/src/network_inspectors/port_scan/port_scan.cc index 39389703d..e89a5c6c4 100644 --- a/src/network_inspectors/port_scan/port_scan.cc +++ b/src/network_inspectors/port_scan/port_scan.cc @@ -484,10 +484,9 @@ static int PortscanAlertTcp(Packet *p, PS_PROTO *proto, int) break; case PS_ALERT_PORTSWEEP_FILTERED: - event_ref = GeneratePSSnortEvent(p,GID_PORT_SCAN, PSNG_TCP_PORTSWEEP_FILTERED); - portsweep = 1; - - return 0; + event_ref = GeneratePSSnortEvent(p,GID_PORT_SCAN, PSNG_TCP_PORTSWEEP_FILTERED); + portsweep = 1; + break; case PS_ALERT_DISTRIBUTED_FILTERED: event_ref = GeneratePSSnortEvent(p,GID_PORT_SCAN, diff --git a/src/search_engines/acsmx2.cc b/src/search_engines/acsmx2.cc index f8fe78d2f..701175d33 100644 --- a/src/search_engines/acsmx2.cc +++ b/src/search_engines/acsmx2.cc @@ -1045,7 +1045,6 @@ static int Conv_Full_DFA_To_Banded(ACSM_STRUCT2 * acsm) int cnt,m,k,i; for(k=0; kacsmNumStates; k++) { - cnt=0; List_ConvToFull(acsm, (acstate_t)k, full ); @@ -1154,7 +1153,6 @@ static int Conv_Full_DFA_To_SparseBands(ACSM_STRUCT2 * acsm) acstate_t full[MAX_ALPHABET_SIZE]; for(k=0; kacsmNumStates; k++) { - cnt=0; List_ConvToFull(acsm, (acstate_t)k, full ); diff --git a/src/service_inspectors/http_inspect/hi_client.cc b/src/service_inspectors/http_inspect/hi_client.cc index 6caa8fcf7..d41fe756c 100644 --- a/src/service_inspectors/http_inspect/hi_client.cc +++ b/src/service_inspectors/http_inspect/hi_client.cc @@ -2370,7 +2370,6 @@ static inline const u_char *hi_client_extract_header( if (iRet == URI_END) { header_ptr->header.uri = version_string.uri_end + 1; - offset = (u_char *)p; } else { @@ -2743,7 +2742,7 @@ int StatelessInspection(Packet *p, HI_SESSION *session, HttpsessionData *hsd, in // // uri_ptr.end points to end of URI & HTTP version identifier. if (hi_util_in_bounds(start, end, uri_ptr.uri_end + 1)) - ptr = hi_client_extract_header(session, ServerConf, &header_ptr, uri_ptr.uri_end+1, end, hsd, stream_ins); + hi_client_extract_header(session, ServerConf, &header_ptr, uri_ptr.uri_end+1, end, hsd, stream_ins); if (header_ptr.header.uri) { diff --git a/src/service_inspectors/http_inspect/hi_norm.cc b/src/service_inspectors/http_inspect/hi_norm.cc index 443123725..7fa65806e 100644 --- a/src/service_inspectors/http_inspect/hi_norm.cc +++ b/src/service_inspectors/http_inspect/hi_norm.cc @@ -303,11 +303,6 @@ static int PercentDecode(HI_SESSION *session, const u_char *start, } } - /* - ** Initialize the normalization byte - */ - iNorm = 0; - /* ** hex values */ diff --git a/src/service_inspectors/http_inspect/hi_server.cc b/src/service_inspectors/http_inspect/hi_server.cc index 2abaa74fa..1f8ad964d 100644 --- a/src/service_inspectors/http_inspect/hi_server.cc +++ b/src/service_inspectors/http_inspect/hi_server.cc @@ -1420,7 +1420,7 @@ int HttpResponseInspection(HI_SESSION *session, Packet *p, const unsigned char * { if (hi_util_in_bounds(start, end, ptr)) { - iRet = hi_server_inspect_body(session, sd, ptr, end, &body_ptr); + hi_server_inspect_body(session, sd, ptr, end, &body_ptr); } } else @@ -1437,7 +1437,7 @@ int HttpResponseInspection(HI_SESSION *session, Packet *p, const unsigned char * } else { - iRet = hi_server_extract_status_msg(start, stat_code_ptr.uri_end , + hi_server_extract_status_msg(start, stat_code_ptr.uri_end , end, &stat_msg_ptr); if ( stat_msg_ptr.uri ) @@ -1540,7 +1540,7 @@ int HttpResponseInspection(HI_SESSION *session, Packet *p, const unsigned char * if(hi_util_in_bounds(start, end, header_ptr.header.uri_end)) { - iRet = hi_server_inspect_body(session, sd, header_ptr.header.uri_end, + hi_server_inspect_body(session, sd, header_ptr.header.uri_end, end, &body_ptr); } } diff --git a/src/service_inspectors/nhttp_inspect/nhttp_enum.h b/src/service_inspectors/nhttp_inspect/nhttp_enum.h index 5ee313f3c..d2a09b7dd 100644 --- a/src/service_inspectors/nhttp_inspect/nhttp_enum.h +++ b/src/service_inspectors/nhttp_inspect/nhttp_enum.h @@ -29,6 +29,8 @@ #ifndef NHTTP_ENUM_H #define NHTTP_ENUM_H +#include + #define NHTTP_GID 119 namespace NHttpEnums { diff --git a/src/sfrt/sfrt_flat.cc b/src/sfrt/sfrt_flat.cc index 1e707ae2b..cb9f7e201 100644 --- a/src/sfrt/sfrt_flat.cc +++ b/src/sfrt/sfrt_flat.cc @@ -455,8 +455,6 @@ GENERIC sfrt_flat_dir8x_lookup(void *adr, table_flat_t* table) else return NULL; } - subtable = (dir_sub_table_flat_t *)(&base[entry[index].value]); - } else if (ip->family == AF_INET6) { diff --git a/src/stream/tcp/tcp_session.cc b/src/stream/tcp/tcp_session.cc index d47916b2e..08148f240 100644 --- a/src/stream/tcp/tcp_session.cc +++ b/src/stream/tcp/tcp_session.cc @@ -2378,7 +2378,7 @@ static int FlushStream( StreamSegment *ss = NULL, *seglist, *sr; uint16_t bytes_flushed = 0; uint16_t bytes_skipped = 0; - uint32_t bytes_queued = st->seg_bytes_logical; + STREAM5_DEBUG_WRAP(uint32_t bytes_queued = st->seg_bytes_logical;); uint32_t segs = 0; int ret; PROFILE_VARS; @@ -2479,7 +2479,7 @@ static int FlushStream( STREAM5_DEBUG_WRAP(DebugMessage(DEBUG_STREAM_STATE, "setting st->seglist_base_seq to 0x%X\n", st->seglist_base_seq);); - bytes_queued -= bytes_flushed; + STREAM5_DEBUG_WRAP(bytes_queued -= bytes_flushed;); STREAM5_DEBUG_WRAP(DebugMessage(DEBUG_STREAM_STATE, "flushed %d bytes / %d segs on stream, " @@ -3654,7 +3654,7 @@ static int StreamQueue(StreamTracker *st, Packet *p, TcpDataBlock *tdb, } } seq += overlap; - slide = overlap; + //slide = overlap; if(SEQ_LEQ(seq_end, seq)) { /* @@ -3678,7 +3678,7 @@ static int StreamQueue(StreamTracker *st, Packet *p, TcpDataBlock *tdb, STREAM5_DEBUG_WRAP(DebugMessage(DEBUG_STREAM_STATE, "left overlap, honoring old data\n");); seq += overlap; - slide = overlap; + //slide = overlap; if(SEQ_LEQ(seq_end, seq)) { /* diff --git a/src/time/ppm.cc b/src/time/ppm.cc index 8bf98b6a3..97698afb7 100644 --- a/src/time/ppm.cc +++ b/src/time/ppm.cc @@ -365,9 +365,7 @@ void ppm_pkt_log(ppm_cfg_t *ppm_cfg, Packet* p) p->pkth->ts.tv_sec); } - if(filterEvent < 0) - filterEvent = 0; - else + if(filterEvent >= 0) AlertAction(p, potn); } @@ -445,9 +443,7 @@ void ppm_rule_log(ppm_cfg_t *ppm_cfg, uint64_t pktcnt, Packet *p) p->pkth->ts.tv_sec); } - if(filterEvent < 0) - filterEvent = 0; - else + if(filterEvent >= 0) AlertAction(p, otn); } } @@ -501,9 +497,7 @@ void ppm_rule_log(ppm_cfg_t *ppm_cfg, uint64_t pktcnt, Packet *p) p->pkth->ts.tv_sec); } - if(filterEvent < 0) - filterEvent = 0; - else + if(filterEvent >= 0) AlertAction(p, otn); } } diff --git a/src/utils/sf_email_attach_decode.cc b/src/utils/sf_email_attach_decode.cc index e331cbe5c..0dbf1b4e9 100644 --- a/src/utils/sf_email_attach_decode.cc +++ b/src/utils/sf_email_attach_decode.cc @@ -152,7 +152,6 @@ int sf_uudecode(uint8_t *src, uint32_t slen, uint8_t *dst, uint32_t dlen, uint32 { if(*ptr == '\n') { - length = 0; sol = 1; ptr++; continue; diff --git a/src/utils/sfportobject.cc b/src/utils/sfportobject.cc index e7bc7f9ef..cb9ba9f40 100644 --- a/src/utils/sfportobject.cc +++ b/src/utils/sfportobject.cc @@ -560,7 +560,10 @@ int PortObjectAddPortObject(PortObject * podst, PortObject * posrc, int *errflag { PortObjectItem *poi = PortObjectItemDup(po); if((ret = PortObjectAddItem(podst, poi, errflag)) != 0) + { + PortObjectItemFree(poi); return ret; + } } return ret; @@ -690,7 +693,10 @@ PortObject * PortObjectDupPorts( PortObject * po ) { poinew = PortObjectItemDup( poi ); if(!poinew) - return 0; + { + free(ponew); + return NULL; + } PortObjectAddItem( ponew, poinew, NULL ); } } @@ -3375,7 +3381,6 @@ static PortObject *_POParsePort(POParser *pop) return NULL; } - hport = MAXPORTS-1; pop->token[0]=0; /* The string in pop should only be of the form or : */ diff --git a/src/utils/stats.cc b/src/utils/stats.cc index 24c191e16..2108cc6dc 100644 --- a/src/utils/stats.cc +++ b/src/utils/stats.cc @@ -244,8 +244,6 @@ void pc_sum() void DropStats() { - uint64_t pkts_recv = pc.total_from_daq; - const DAQ_Stats_t* pkt_stats = &g_daq_stats; #ifdef PPM_MGR @@ -253,10 +251,10 @@ void DropStats() #endif { - uint64_t pkts_drop, pkts_out, pkts_inj; + uint64_t pkts_out, pkts_inj; - pkts_recv = pkt_stats->hw_packets_received; - pkts_drop = pkt_stats->hw_packets_dropped; + uint64_t pkts_recv = pkt_stats->hw_packets_received; + uint64_t pkts_drop = pkt_stats->hw_packets_dropped; if ( pkts_recv > pkt_stats->packets_filtered + pkt_stats->packets_received ) diff --git a/src/utils/util.cc b/src/utils/util.cc index 1e1a9cb8e..6a42e059c 100644 --- a/src/utils/util.cc +++ b/src/utils/util.cc @@ -436,7 +436,6 @@ void InitGroups(int user_id, int group_id) if (initgroups(username, group_id) < 0) { - free(username); FatalError("Can not initgroups(%s,%d)", username, group_id); }