From cc76aa4bc6877ee35611b5e04f0a2832eddb1da4 Mon Sep 17 00:00:00 2001 From: William Metcalf Date: Thu, 10 Jun 2010 19:07:21 -0500 Subject: [PATCH] properly init flows inside of unit-tests caused lock-up when falling back to using mutex locks --- src/app-layer-dcerpc.c | 8 ++++++++ src/app-layer-ftp.c | 10 ++++++++++ src/app-layer-parser.c | 4 ++++ src/app-layer-ssl.c | 7 ++++++- src/detect-dce-iface.c | 4 ++++ src/detect-dce-opnum.c | 7 +++++++ src/detect-dce-stub-data.c | 5 +++++ src/detect-engine-state.c | 2 ++ src/detect-flowbits.c | 4 ++++ src/detect-ftpbounce.c | 10 ++++++++-- src/detect-http-client-body.c | 9 +++++++++ src/detect-http-cookie.c | 8 ++++++++ src/detect-http-header.c | 9 +++++++++ src/detect-http-method.c | 4 ++++ src/detect-pcre.c | 7 +++++++ src/detect-tls-version.c | 4 ++++ src/detect-uricontent.c | 22 ++++++++++++++++++++++ src/detect-urilen.c | 2 ++ src/detect.c | 21 +++++++++++++++++++-- src/flow.c | 8 ++++---- src/stream-tcp-reassemble.c | 20 ++++++++++++++++++++ 21 files changed, 166 insertions(+), 9 deletions(-) diff --git a/src/app-layer-dcerpc.c b/src/app-layer-dcerpc.c index a489f01499..b203355a84 100644 --- a/src/app-layer-dcerpc.c +++ b/src/app-layer-dcerpc.c @@ -34,6 +34,8 @@ #include "util-pool.h" #include "util-debug.h" +#include "flow-util.h" + #include "stream-tcp-private.h" #include "stream-tcp-reassemble.h" #include "stream-tcp.h" @@ -1752,6 +1754,8 @@ int DCERPCParserTest01(void) { memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; StreamTcpInitConfig(TRUE); @@ -1969,6 +1973,8 @@ int DCERPCParserTest02(void) { memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; StreamTcpInitConfig(TRUE); @@ -2160,6 +2166,8 @@ int DCERPCParserTest03(void) { memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; StreamTcpInitConfig(TRUE); diff --git a/src/app-layer-ftp.c b/src/app-layer-ftp.c index 3c6a06b0c6..183845cfeb 100644 --- a/src/app-layer-ftp.c +++ b/src/app-layer-ftp.c @@ -31,6 +31,8 @@ #include "util-print.h" #include "util-pool.h" +#include "flow-util.h" + #include "stream-tcp-private.h" #include "stream-tcp-reassemble.h" #include "stream-tcp.h" @@ -294,6 +296,8 @@ int FTPParserTest01(void) { memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; StreamTcpInitConfig(TRUE); @@ -394,6 +398,8 @@ int FTPParserTest06(void) { memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; StreamTcpInitConfig(TRUE); @@ -437,6 +443,8 @@ int FTPParserTest07(void) { memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; StreamTcpInitConfig(TRUE); @@ -486,6 +494,8 @@ int FTPParserTest10(void) { int r = 0; memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; StreamTcpInitConfig(TRUE); diff --git a/src/app-layer-parser.c b/src/app-layer-parser.c index 6611706f4a..d162cdf869 100644 --- a/src/app-layer-parser.c +++ b/src/app-layer-parser.c @@ -32,6 +32,8 @@ #include "util-print.h" #include "util-pool.h" +#include "flow-util.h" + #include "stream-tcp.h" #include "stream-tcp-private.h" #include "stream.h" @@ -1321,6 +1323,8 @@ static int AppLayerParserTest01 (void) TestProtocolStateFree); ssn.alproto = ALPROTO_TEST; + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; inet_pton(AF_INET, "1.2.3.4", &addr.s_addr); diff --git a/src/app-layer-ssl.c b/src/app-layer-ssl.c index 55d986a547..e8251d7797 100644 --- a/src/app-layer-ssl.c +++ b/src/app-layer-ssl.c @@ -46,7 +46,7 @@ #include "util-unittest.h" #include "util-debug.h" #include "flow-private.h" - +#include "flow-util.h" #include "util-byte.h" /** @@ -263,6 +263,8 @@ static int SSLParserTest01(void) { memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; StreamTcpInitConfig(TRUE); @@ -314,6 +316,8 @@ static int SSLParserTest02(void) { memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; StreamTcpInitConfig(TRUE); @@ -542,6 +546,7 @@ static int SSLParserTest03(void) { ssn.client.last_ack = 390133221UL; ssn.alproto = ALPROTO_UNKNOWN; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; tcph.th_win = htons(5480); diff --git a/src/detect-dce-iface.c b/src/detect-dce-iface.c index 5059e0ea8c..b93daecf68 100644 --- a/src/detect-dce-iface.c +++ b/src/detect-dce-iface.c @@ -34,6 +34,7 @@ #include "flow.h" #include "flow-var.h" +#include "flow-util.h" #include "app-layer.h" #include "app-layer-dcerpc.h" @@ -848,6 +849,7 @@ static int DetectDceIfaceTestParse12(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; @@ -1063,6 +1065,7 @@ static int DetectDceIfaceTestParse13(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.proto = IPPROTO_TCP; p.flow = &f; @@ -1296,6 +1299,7 @@ static int DetectDceIfaceTestParse14(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/detect-dce-opnum.c b/src/detect-dce-opnum.c index 9286d6f5f9..ad5111cc2b 100644 --- a/src/detect-dce-opnum.c +++ b/src/detect-dce-opnum.c @@ -33,6 +33,7 @@ #include "flow.h" #include "flow-var.h" +#include "flow-util.h" #include "app-layer.h" #include "app-layer-dcerpc.h" @@ -1132,6 +1133,7 @@ static int DetectDceOpnumTestParse08(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; @@ -1658,6 +1660,7 @@ static int DetectDceOpnumTestParse09(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; @@ -1854,6 +1857,7 @@ static int DetectDceOpnumTestParse10(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.proto = IPPROTO_TCP; p.flow = &f; @@ -2130,6 +2134,7 @@ static int DetectDceOpnumTestParse11(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.proto = IPPROTO_TCP; p.flow = &f; @@ -2393,6 +2398,7 @@ static int DetectDceOpnumTestParse12(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.proto = IPPROTO_TCP; p.flow = &f; @@ -2665,6 +2671,7 @@ static int DetectDceOpnumTestParse13(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.proto = IPPROTO_TCP; p.flow = &f; diff --git a/src/detect-dce-stub-data.c b/src/detect-dce-stub-data.c index dc698a2785..79c3c65722 100644 --- a/src/detect-dce-stub-data.c +++ b/src/detect-dce-stub-data.c @@ -33,6 +33,7 @@ #include "flow.h" #include "flow-var.h" +#include "flow-util.h" #include "app-layer.h" #include "app-layer-dcerpc.h" @@ -631,6 +632,7 @@ static int DetectDceStubDataTestParse02(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; @@ -1167,6 +1169,7 @@ static int DetectDceStubDataTestParse03(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; @@ -1359,6 +1362,7 @@ static int DetectDceStubDataTestParse04(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.proto = IPPROTO_TCP; p.flow = &f; @@ -1609,6 +1613,7 @@ static int DetectDceStubDataTestParse05(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.proto = IPPROTO_TCP; p.flow = &f; diff --git a/src/detect-engine-state.c b/src/detect-engine-state.c index 76e8d456c0..2fed3d05ec 100644 --- a/src/detect-engine-state.c +++ b/src/detect-engine-state.c @@ -591,6 +591,7 @@ static int DeStateTest03(void) { p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -724,6 +725,7 @@ static int DeStateTest04(void) { p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.proto = IPPROTO_TCP; f.src.family = AF_INET; diff --git a/src/detect-flowbits.c b/src/detect-flowbits.c index 9beccafd7c..a4e500e5b2 100644 --- a/src/detect-flowbits.c +++ b/src/detect-flowbits.c @@ -30,6 +30,7 @@ #include "threads.h" #include "flow.h" #include "flow-bit.h" +#include "flow-util.h" #include "detect-flowbits.h" #include "util-spm.h" @@ -714,6 +715,7 @@ static int FlowBitsTestSig06(void) { memset(&f, 0, sizeof(Flow)); memset(&flowvar, 0, sizeof(GenericVar)); + FLOW_INITIALIZE(&f); p.flow = &f; p.flow->flowvar = &flowvar; @@ -809,6 +811,7 @@ static int FlowBitsTestSig07(void) { memset(&f, 0, sizeof(Flow)); memset(&flowvar, 0, sizeof(GenericVar)); + FLOW_INITIALIZE(&f); p.flow = &f; p.flow->flowvar = &flowvar; @@ -908,6 +911,7 @@ static int FlowBitsTestSig08(void) { memset(&f, 0, sizeof(Flow)); memset(&flowvar, 0, sizeof(GenericVar)); + FLOW_INITIALIZE(&f); p.flow = &f; p.flow->flowvar = &flowvar; diff --git a/src/detect-ftpbounce.c b/src/detect-ftpbounce.c index be45154f73..47ae832dfa 100644 --- a/src/detect-ftpbounce.c +++ b/src/detect-ftpbounce.c @@ -38,6 +38,7 @@ #include "util-debug.h" #include "flow.h" #include "flow-var.h" +#include "flow-util.h" #include "threads.h" #include "detect-ftpbounce.h" #include "stream-tcp.h" @@ -335,11 +336,14 @@ static int DetectFtpbounceTestALMatch02(void) { p.src.family = AF_INET; p.dst.family = AF_INET; p.src.addr_data32[0] = 0x01020304; - f.src.address.address_un_data32[0]=0x01020304; p.payload = NULL; p.payload_len = 0; p.proto = IPPROTO_TCP; + + FLOW_INITIALIZE(&f); + f.src.address.address_un_data32[0]=0x01020304; f.protoctx =(void *)&ssn; + p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; ssn.alproto = ALPROTO_FTP; @@ -457,12 +461,14 @@ static int DetectFtpbounceTestALMatch03(void) { p.src.family = AF_INET; p.dst.family = AF_INET; p.src.addr_data32[0] = 0x04030201; - f.src.address.address_un_data32[0]=0x04030201; p.payload = NULL; p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); + f.src.address.address_un_data32[0]=0x04030201; f.protoctx =(void *)&ssn; + p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; ssn.alproto = ALPROTO_FTP; diff --git a/src/detect-http-client-body.c b/src/detect-http-client-body.c index a64a098682..c85b96d566 100644 --- a/src/detect-http-client-body.c +++ b/src/detect-http-client-body.c @@ -35,6 +35,7 @@ #include "flow.h" #include "flow-var.h" +#include "flow-util.h" #include "util-debug.h" #include "util-unittest.h" @@ -471,6 +472,7 @@ static int DetectHttpClientBodyTest06(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -581,6 +583,7 @@ static int DetectHttpClientBodyTest07(void) p2.payload_len = 0; p2.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -707,6 +710,7 @@ static int DetectHttpClientBodyTest08(void) p2.payload_len = 0; p2.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -834,6 +838,7 @@ static int DetectHttpClientBodyTest09(void) p2.payload_len = 0; p2.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -961,6 +966,7 @@ static int DetectHttpClientBodyTest10(void) p2.payload_len = 0; p2.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -1077,6 +1083,7 @@ static int DetectHttpClientBodyTest11(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -1176,6 +1183,7 @@ static int DetectHttpClientBodyTest12(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -1275,6 +1283,7 @@ static int DetectHttpClientBodyTest13(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; diff --git a/src/detect-http-cookie.c b/src/detect-http-cookie.c index acbc4734cd..b57e2a38f7 100644 --- a/src/detect-http-cookie.c +++ b/src/detect-http-cookie.c @@ -36,6 +36,7 @@ #include "flow.h" #include "flow-var.h" +#include "flow-util.h" #include "util-debug.h" #include "util-unittest.h" @@ -499,6 +500,7 @@ static int DetectHttpCookieSigTest01(void) { p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -602,6 +604,7 @@ static int DetectHttpCookieSigTest02(void) { p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -694,6 +697,7 @@ static int DetectHttpCookieSigTest03(void) { p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -786,6 +790,7 @@ static int DetectHttpCookieSigTest04(void) { p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -878,6 +883,7 @@ static int DetectHttpCookieSigTest05(void) { p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -970,6 +976,7 @@ static int DetectHttpCookieSigTest06(void) { p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -1062,6 +1069,7 @@ static int DetectHttpCookieSigTest07(void) { p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; diff --git a/src/detect-http-header.c b/src/detect-http-header.c index df8623cebf..814197ba15 100644 --- a/src/detect-http-header.c +++ b/src/detect-http-header.c @@ -35,6 +35,7 @@ #include "flow.h" #include "flow-var.h" +#include "flow-util.h" #include "util-debug.h" #include "util-unittest.h" @@ -467,6 +468,7 @@ static int DetectHttpHeaderTest06(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -575,6 +577,7 @@ static int DetectHttpHeaderTest07(void) p2.payload_len = 0; p2.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -699,6 +702,7 @@ static int DetectHttpHeaderTest08(void) p2.payload_len = 0; p2.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -824,6 +828,7 @@ static int DetectHttpHeaderTest09(void) p2.payload_len = 0; p2.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -949,6 +954,7 @@ static int DetectHttpHeaderTest10(void) p2.payload_len = 0; p2.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -1064,6 +1070,7 @@ static int DetectHttpHeaderTest11(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -1162,6 +1169,7 @@ static int DetectHttpHeaderTest12(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -1260,6 +1268,7 @@ static int DetectHttpHeaderTest13(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; diff --git a/src/detect-http-method.c b/src/detect-http-method.c index 5cd7a3b24e..02d78c7eb4 100644 --- a/src/detect-http-method.c +++ b/src/detect-http-method.c @@ -36,6 +36,7 @@ #include "flow.h" #include "flow-var.h" +#include "flow-util.h" #include "util-debug.h" #include "util-unittest.h" @@ -415,6 +416,7 @@ static int DetectHttpMethodSigTest01(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -515,6 +517,7 @@ static int DetectHttpMethodSigTest02(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -614,6 +617,7 @@ static int DetectHttpMethodSigTest03(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; diff --git a/src/detect-pcre.c b/src/detect-pcre.c index 523ae0c9f0..f707e0b823 100644 --- a/src/detect-pcre.c +++ b/src/detect-pcre.c @@ -31,6 +31,7 @@ #include "pkt-var.h" #include "flow-var.h" #include "flow-alert-sid.h" +#include "flow-util.h" #include "detect-pcre.h" @@ -928,6 +929,8 @@ static int DetectPcreTestSig01Real(int mpm_type) { memset(&f, 0, sizeof(f)); memset(&th_v, 0, sizeof(th_v)); memset(&p, 0, sizeof(p)); + + FLOW_INITIALIZE(&f); p.src.family = AF_INET; p.dst.family = AF_INET; p.payload = buf; @@ -984,6 +987,8 @@ static int DetectPcreTestSig02Real(int mpm_type) { memset(&th_v, 0, sizeof(th_v)); memset(&p, 0, sizeof(p)); memset(&f, 0, sizeof(f)); + + FLOW_INITIALIZE(&f); p.flow = &f; p.src.family = AF_INET; p.dst.family = AF_INET; @@ -1163,6 +1168,7 @@ static int DetectPcreModifPTest04(void) { p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -1297,6 +1303,7 @@ static int DetectPcreModifPTest05(void) { p2.payload_len = 0; p2.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; diff --git a/src/detect-tls-version.c b/src/detect-tls-version.c index e4f46e4238..d18e7a1a14 100644 --- a/src/detect-tls-version.c +++ b/src/detect-tls-version.c @@ -36,6 +36,7 @@ #include "flow.h" #include "flow-var.h" +#include "flow-util.h" #include "util-debug.h" #include "util-unittest.h" @@ -334,6 +335,7 @@ static int DetectTlsVersionTestDetect01(void) { p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; @@ -448,6 +450,7 @@ static int DetectTlsVersionTestDetect02(void) { p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; @@ -560,6 +563,7 @@ static int DetectTlsVersionTestDetect03(void) { p.payload_len = tlslen4; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/detect-uricontent.c b/src/detect-uricontent.c index ba528b74ad..1aebc03196 100644 --- a/src/detect-uricontent.c +++ b/src/detect-uricontent.c @@ -35,6 +35,7 @@ #include "flow.h" #include "detect-flow.h" #include "flow-var.h" +#include "flow-util.h" #include "threads.h" #include "flow-alert-sid.h" @@ -466,6 +467,8 @@ static int HTTPUriTest01(void) { int r = 0; memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -531,6 +534,8 @@ static int HTTPUriTest02(void) { int r = 0; memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -599,6 +604,8 @@ static int HTTPUriTest03(void) { int r = 0; memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -667,6 +674,8 @@ static int HTTPUriTest04(void) { int r = 0; memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -794,6 +803,7 @@ static int DetectUriSigTest02(void) { p.payload_len = httplen1; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -904,9 +914,12 @@ static int DetectUriSigTest03(void) { p.payload = httpbuf1; p.payload_len = httplen1; p.proto = IPPROTO_TCP; + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; + p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; ssn.alproto = ALPROTO_HTTP; @@ -1217,9 +1230,12 @@ static int DetectUriSigTest05(void) { p.payload = httpbuf1; p.payload_len = httplen1; p.proto = IPPROTO_TCP; + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; + p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; ssn.alproto = ALPROTO_HTTP; @@ -1339,9 +1355,12 @@ static int DetectUriSigTest06(void) { p.payload = httpbuf1; p.payload_len = httplen1; p.proto = IPPROTO_TCP; + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; + p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; ssn.alproto = ALPROTO_HTTP; @@ -1468,9 +1487,12 @@ static int DetectUriSigTest07(void) { p.payload = httpbuf1; p.payload_len = httplen1; p.proto = IPPROTO_TCP; + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; + p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; ssn.alproto = ALPROTO_HTTP; diff --git a/src/detect-urilen.c b/src/detect-urilen.c index 0eef85b89a..d43486f907 100644 --- a/src/detect-urilen.c +++ b/src/detect-urilen.c @@ -34,6 +34,7 @@ #include "detect-urilen.h" #include "util-debug.h" #include "util-byte.h" +#include "flow-util.h" #include "stream-tcp.h" /** @@ -503,6 +504,7 @@ static int DetectUrilenSigTest01(void) p.payload_len = 0; p.proto = IPPROTO_TCP; + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; diff --git a/src/detect.c b/src/detect.c index a9252366d7..7f5b416aa4 100644 --- a/src/detect.c +++ b/src/detect.c @@ -3415,6 +3415,8 @@ static int SigTest06Real (int mpm_type) { p.payload = buf; p.payload_len = buflen; p.proto = IPPROTO_TCP; + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -3510,6 +3512,8 @@ static int SigTest07Real (int mpm_type) { p.payload = buf; p.payload_len = buflen; p.proto = IPPROTO_TCP; + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -3605,12 +3609,13 @@ static int SigTest08Real (int mpm_type) { p.payload = buf; p.payload_len = buflen; p.proto = IPPROTO_TCP; + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; p.flow = &f; p.flowflags |= FLOW_PKT_TOSERVER; - //FlowInit(&f, &p); ssn.alproto = ALPROTO_HTTP; StreamTcpInitConfig(TRUE); @@ -3702,6 +3707,8 @@ static int SigTest09Real (int mpm_type) { p.payload = buf; p.payload_len = buflen; p.proto = IPPROTO_TCP; + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -3790,6 +3797,8 @@ static int SigTest10Real (int mpm_type) { p.payload = buf; p.payload_len = buflen; p.proto = IPPROTO_TCP; + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -3873,13 +3882,14 @@ static int SigTest11Real (int mpm_type) { memset(&p, 0, sizeof(p)); memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); - p.flow = &f; p.src.family = AF_INET; p.dst.family = AF_INET; p.payload = buf; p.payload_len = buflen; p.proto = IPPROTO_TCP; + + FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.src.family = AF_INET; f.dst.family = AF_INET; @@ -3947,6 +3957,8 @@ static int SigTest12Real (int mpm_type) { memset(&p, 0, sizeof(p)); Flow f; memset(&f, 0, sizeof(Flow)); + + FLOW_INITIALIZE(&f); p.flow = &f; p.src.family = AF_INET; p.dst.family = AF_INET; @@ -4012,6 +4024,8 @@ static int SigTest13Real (int mpm_type) { memset(&p, 0, sizeof(p)); Flow f; memset(&f, 0, sizeof(Flow)); + + FLOW_INITIALIZE(&f); p.flow = &f; p.src.family = AF_INET; p.dst.family = AF_INET; @@ -4542,6 +4556,7 @@ static int SigTest21Real (int mpm_type) { Flow f; memset(&f, 0, sizeof(f)); + FLOW_INITIALIZE(&f); /* packet 1 */ uint8_t *buf1 = (uint8_t *)"GET /one/ HTTP/1.0\r\n" @@ -4631,6 +4646,7 @@ static int SigTest22Real (int mpm_type) { Flow f; memset(&f, 0, sizeof(f)); + FLOW_INITIALIZE(&f); /* packet 1 */ uint8_t *buf1 = (uint8_t *)"GET /one/ HTTP/1.0\r\n" @@ -4721,6 +4737,7 @@ static int SigTest23Real (int mpm_type) { Flow f; memset(&f, 0, sizeof(f)); + FLOW_INITIALIZE(&f); /* packet 1 */ uint8_t *buf1 = (uint8_t *)"GET /one/ HTTP/1.0\r\n" diff --git a/src/flow.c b/src/flow.c index 4a711afc71..a6d6bab579 100644 --- a/src/flow.c +++ b/src/flow.c @@ -1638,7 +1638,7 @@ static int FlowTest04 (void) { memset(&client, 0, sizeof(TcpSegment)); SCSpinInit(&fb.s, 0); - SCMutexInit(&f.m, NULL); + FLOW_INITIALIZE(&f); TimeGet(&ts); seg.payload = payload; @@ -1660,8 +1660,8 @@ static int FlowTest04 (void) { return 0; } - SCSpinDestroy(&fb.s); SCMutexDestroy(&f.m); + SCSpinDestroy(&fb.s); return 1; } @@ -1686,7 +1686,7 @@ static int FlowTest05 (void) { memset(&fb, 0, sizeof(FlowBucket)); SCSpinInit(&fb.s, 0); - SCMutexInit(&f.m, NULL); + FLOW_INITIALIZE(&f); TimeGet(&ts); ssn.state = TCP_SYN_SENT; @@ -1732,7 +1732,7 @@ static int FlowTest06 (void) { memset(&client, 0, sizeof(TcpSegment)); SCSpinInit(&fb.s, 0); - SCMutexInit(&f.m, NULL); + FLOW_INITIALIZE(&f); TimeGet(&ts); seg.payload = payload; diff --git a/src/stream-tcp-reassemble.c b/src/stream-tcp-reassemble.c index 156785e8e5..b99cda85fa 100644 --- a/src/stream-tcp-reassemble.c +++ b/src/stream-tcp-reassemble.c @@ -34,6 +34,8 @@ #include "flow.h" #include "threads.h" +#include "flow-util.h" + #include "threadvars.h" #include "tm-modules.h" @@ -2177,6 +2179,7 @@ static int StreamTcpReassembleStreamTest(TcpStream *stream) { memset(&p, 0, sizeof (Packet)); memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); + FLOW_INITIALIZE(&f); f.protoctx = &ssn; p.src.family = AF_INET; p.dst.family = AF_INET; @@ -2469,6 +2472,8 @@ static int StreamTcpTestStartsBeforeListSegment(TcpStream *stream) { memset(&p, 0, sizeof (Packet)); memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); + + FLOW_INITIALIZE(&f); f.protoctx = &ssn; p.src.family = AF_INET; p.dst.family = AF_INET; @@ -2557,6 +2562,7 @@ static int StreamTcpTestStartsAtSameListSegment(TcpStream *stream) { memset(&p, 0, sizeof (Packet)); memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); + FLOW_INITIALIZE(&f); f.protoctx = &ssn; p.src.family = AF_INET; p.dst.family = AF_INET; @@ -2646,6 +2652,7 @@ static int StreamTcpTestStartsAfterListSegment(TcpStream *stream) { memset(&p, 0, sizeof (Packet)); memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); + FLOW_INITIALIZE(&f); f.protoctx = &ssn; p.src.family = AF_INET; p.dst.family = AF_INET; @@ -3352,6 +3359,7 @@ static int StreamTcpTestMissedPacket (TcpReassemblyThreadCtx *ra_ctx, sp = 200; dp = 220; + FLOW_INITIALIZE(&f); f.src = src; f.dst = dst; f.sp = sp; @@ -3943,6 +3951,7 @@ static int StreamTcpReassembleTest32(void) { memset(&p, 0, sizeof (Packet)); memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); + FLOW_INITIALIZE(&f); f.protoctx = &ssn; p.src.family = AF_INET; p.dst.family = AF_INET; @@ -4020,6 +4029,7 @@ static int StreamTcpReassembleTest33(void) { memset(&p, 0, sizeof (Packet)); memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); + FLOW_INITIALIZE(&f); f.protoctx = &ssn; p.src.family = AF_INET; p.dst.family = AF_INET; @@ -4086,6 +4096,7 @@ static int StreamTcpReassembleTest34(void) { memset(&p, 0, sizeof (Packet)); memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); + FLOW_INITIALIZE(&f); f.protoctx = &ssn; p.src.family = AF_INET; p.dst.family = AF_INET; @@ -4153,6 +4164,7 @@ static int StreamTcpReassembleTest35(void) { memset(&p, 0, sizeof (Packet)); memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); + FLOW_INITIALIZE(&f); f.protoctx = &ssn; p.src.family = AF_INET; p.dst.family = AF_INET; @@ -4210,6 +4222,7 @@ static int StreamTcpReassembleTest36(void) { memset(&p, 0, sizeof (Packet)); memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); + FLOW_INITIALIZE(&f); f.protoctx = &ssn; p.src.family = AF_INET; p.dst.family = AF_INET; @@ -4267,6 +4280,7 @@ static int StreamTcpReassembleTest37(void) { memset(&p, 0, sizeof (Packet)); memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); + FLOW_INITIALIZE(&f); f.protoctx = &ssn; p.src.family = AF_INET; p.dst.family = AF_INET; @@ -4336,6 +4350,7 @@ static int StreamTcpReassembleTest38 (void) { memset(&dst, 0, sizeof(Address)); memset(&ssn, 0, sizeof(TcpSession)); + FLOW_INITIALIZE(&f); StreamTcpInitConfig(TRUE); TcpReassemblyThreadCtx *ra_ctx = StreamTcpReassembleInitThreadCtx(); AppLayerDetectProtoThreadInit(); @@ -4492,6 +4507,7 @@ static int StreamTcpReassembleTest39 (void) { memset(&dst, 0, sizeof(Address)); memset(&ssn, 0, sizeof(TcpSession)); + FLOW_INITIALIZE(&f); StreamTcpInitConfig(TRUE); TcpReassemblyThreadCtx *ra_ctx = StreamTcpReassembleInitThreadCtx(); AppLayerDetectProtoThreadInit(); @@ -4677,6 +4693,7 @@ static int StreamTcpReassembleTest40 (void) { memset(&dst, 0, sizeof(Address)); memset(&ssn, 0, sizeof(TcpSession)); + FLOW_INITIALIZE(&f); StreamTcpInitConfig(TRUE); TcpReassemblyThreadCtx *ra_ctx = StreamTcpReassembleInitThreadCtx(); AppLayerDetectProtoThreadInit(); @@ -4924,6 +4941,7 @@ static int StreamTcpReassembleTest41 (void) { memset(&dst, 0, sizeof(Address)); memset(&ssn, 0, sizeof(TcpSession)); + FLOW_INITIALIZE(&f); StreamTcpInitConfig(TRUE); TcpReassemblyThreadCtx *ra_ctx = StreamTcpReassembleInitThreadCtx(); AppLayerDetectProtoThreadInit(); @@ -5110,6 +5128,7 @@ static int StreamTcpReassembleTest42 (void) { memset(&dst, 0, sizeof(Address)); memset(&ssn, 0, sizeof(TcpSession)); + FLOW_INITIALIZE(&f); StreamTcpInitConfig(TRUE); TcpReassemblyThreadCtx *ra_ctx = StreamTcpReassembleInitThreadCtx(); AppLayerDetectProtoThreadInit(); @@ -5268,6 +5287,7 @@ static int StreamTcpReassembleTest43 (void) { memset(&dst, 0, sizeof(Address)); memset(&ssn, 0, sizeof(TcpSession)); + FLOW_INITIALIZE(&f); StreamTcpInitConfig(TRUE); TcpReassemblyThreadCtx *ra_ctx = StreamTcpReassembleInitThreadCtx(); AppLayerDetectProtoThreadInit();