diff --git a/src/app-layer-parser.c b/src/app-layer-parser.c index 48a6e47c2d9e..d1cacc572f40 100644 --- a/src/app-layer-parser.c +++ b/src/app-layer-parser.c @@ -1768,60 +1768,6 @@ uint16_t AppLayerParserStateIssetFlag(AppLayerParserState *pstate, uint16_t flag #ifdef UNITTESTS #include "util-unittest-helper.h" -static AppLayerParserCtx alp_ctx_backup_unittest; - -typedef struct TestState_ { - uint8_t test; -} TestState; - -/** - * \brief Test parser function to test the memory deallocation of app layer - * parser of occurrence of an error. - */ -static AppLayerResult TestProtocolParser(Flow *f, void *test_state, AppLayerParserState *pstate, - StreamSlice stream_slice, void *local_data) -{ - SCEnter(); - SCReturnStruct(APP_LAYER_ERROR); -} - -/** \brief Function to allocates the Test protocol state memory - */ -static void *TestProtocolStateAlloc(void *orig_state, AppProto proto_orig) -{ - SCEnter(); - void *s = SCMalloc(sizeof(TestState)); - if (unlikely(s == NULL)) - goto end; - memset(s, 0, sizeof(TestState)); - end: - SCReturnPtr(s, "TestState"); -} - -/** \brief Function to free the Test Protocol state memory - */ -static void TestProtocolStateFree(void *s) -{ - SCFree(s); -} - -static uint64_t TestGetTxCnt(void *state) -{ - /* single tx */ - return 1; -} - -static void TestStateTransactionFree(void *state, uint64_t tx_id) -{ - /* do nothing */ -} - -static void *TestGetTx(void *state, uint64_t tx_id) -{ - TestState *test_state = (TestState *)state; - return test_state; -} - void AppLayerParserRegisterProtocolUnittests(uint8_t ipproto, AppProto alproto, void (*RegisterUnittests)(void)) { @@ -1831,109 +1777,6 @@ void AppLayerParserRegisterProtocolUnittests(uint8_t ipproto, AppProto alproto, SCReturn; } -void AppLayerParserBackupParserTable(void) -{ - SCEnter(); - alp_ctx_backup_unittest = alp_ctx; - memset(&alp_ctx, 0, sizeof(alp_ctx)); - SCReturn; -} - -void AppLayerParserRestoreParserTable(void) -{ - SCEnter(); - alp_ctx = alp_ctx_backup_unittest; - memset(&alp_ctx_backup_unittest, 0, sizeof(alp_ctx_backup_unittest)); - SCReturn; -} - -/** - * \test Test the deallocation of app layer parser memory on occurrence of - * error in the parsing process. - */ -static int AppLayerParserTest01(void) -{ - AppLayerParserBackupParserTable(); - - Flow *f = NULL; - uint8_t testbuf[] = { 0x11 }; - uint32_t testlen = sizeof(testbuf); - TcpSession ssn; - AppLayerParserThreadCtx *alp_tctx = AppLayerParserThreadCtxAlloc(); - - memset(&ssn, 0, sizeof(ssn)); - - /* Register the Test protocol state and parser functions */ - AppLayerParserRegisterParser(IPPROTO_TCP, ALPROTO_TEST, STREAM_TOSERVER, TestProtocolParser); - AppLayerParserRegisterStateFuncs(IPPROTO_TCP, ALPROTO_TEST, - TestProtocolStateAlloc, TestProtocolStateFree); - AppLayerParserRegisterTxFreeFunc(IPPROTO_TCP, ALPROTO_TEST, TestStateTransactionFree); - AppLayerParserRegisterGetTx(IPPROTO_TCP, ALPROTO_TEST, TestGetTx); - AppLayerParserRegisterGetTxCnt(IPPROTO_TCP, ALPROTO_TEST, TestGetTxCnt); - - f = UTHBuildFlow(AF_INET, "1.2.3.4", "4.3.2.1", 20, 40); - FAIL_IF_NULL(f); - f->protoctx = &ssn; - f->alproto = ALPROTO_TEST; - f->proto = IPPROTO_TCP; - - StreamTcpInitConfig(true); - - int r = AppLayerParserParse(NULL, alp_tctx, f, ALPROTO_TEST, - STREAM_TOSERVER | STREAM_EOF, testbuf, - testlen); - FAIL_IF(r != -1); - - FAIL_IF(!(ssn.flags & STREAMTCP_FLAG_APP_LAYER_DISABLED)); - - AppLayerParserRestoreParserTable(); - StreamTcpFreeConfig(true); - UTHFreeFlow(f); - PASS; -} - -/** - * \test Test the deallocation of app layer parser memory on occurrence of - * error in the parsing process for UDP. - */ -static int AppLayerParserTest02(void) -{ - AppLayerParserBackupParserTable(); - - Flow *f = NULL; - uint8_t testbuf[] = { 0x11 }; - uint32_t testlen = sizeof(testbuf); - AppLayerParserThreadCtx *alp_tctx = AppLayerParserThreadCtxAlloc(); - - /* Register the Test protocol state and parser functions */ - AppLayerParserRegisterParser(IPPROTO_UDP, ALPROTO_TEST, STREAM_TOSERVER, - TestProtocolParser); - AppLayerParserRegisterStateFuncs(IPPROTO_UDP, ALPROTO_TEST, - TestProtocolStateAlloc, TestProtocolStateFree); - AppLayerParserRegisterTxFreeFunc(IPPROTO_UDP, ALPROTO_TEST, TestStateTransactionFree); - AppLayerParserRegisterGetTx(IPPROTO_UDP, ALPROTO_TEST, TestGetTx); - AppLayerParserRegisterGetTxCnt(IPPROTO_UDP, ALPROTO_TEST, TestGetTxCnt); - - f = UTHBuildFlow(AF_INET, "1.2.3.4", "4.3.2.1", 20, 40); - FAIL_IF_NULL(f); - f->alproto = ALPROTO_TEST; - f->proto = IPPROTO_UDP; - f->protomap = FlowGetProtoMapping(f->proto); - - StreamTcpInitConfig(true); - - int r = AppLayerParserParse(NULL, alp_tctx, f, ALPROTO_TEST, - STREAM_TOSERVER | STREAM_EOF, testbuf, - testlen); - FAIL_IF(r != -1); - - AppLayerParserRestoreParserTable(); - StreamTcpFreeConfig(true); - UTHFreeFlow(f); - PASS; -} - - void AppLayerParserRegisterUnittests(void) { SCEnter(); @@ -1951,9 +1794,6 @@ void AppLayerParserRegisterUnittests(void) } } - UtRegisterTest("AppLayerParserTest01", AppLayerParserTest01); - UtRegisterTest("AppLayerParserTest02", AppLayerParserTest02); - SCReturn; } diff --git a/src/app-layer-parser.h b/src/app-layer-parser.h index 64fc70205e70..58ad4333563c 100644 --- a/src/app-layer-parser.h +++ b/src/app-layer-parser.h @@ -315,8 +315,6 @@ void AppLayerParserTransactionsCleanup(Flow *f, const uint8_t pkt_dir); void AppLayerParserRegisterProtocolUnittests(uint8_t ipproto, AppProto alproto, void (*RegisterUnittests)(void)); void AppLayerParserRegisterUnittests(void); -void AppLayerParserBackupParserTable(void); -void AppLayerParserRestoreParserTable(void); void UTHAppLayerParserStateGetIds(void *ptr, uint64_t *i1, uint64_t *i2, uint64_t *log, uint64_t *min); #endif diff --git a/src/app-layer-protos.c b/src/app-layer-protos.c index e82d8688f557..03736554c7b6 100644 --- a/src/app-layer-protos.c +++ b/src/app-layer-protos.c @@ -70,9 +70,6 @@ const AppProtoStringTuple AppProtoStrings[ALPROTO_MAX] = { { ALPROTO_POP3, "pop3" }, { ALPROTO_HTTP, "http" }, { ALPROTO_FAILED, "failed" }, -#ifdef UNITTESTS - { ALPROTO_TEST, "test" }, -#endif }; const char *AppProtoToString(AppProto alproto) diff --git a/src/app-layer-protos.h b/src/app-layer-protos.h index 348203ac2f53..10b8959772c4 100644 --- a/src/app-layer-protos.h +++ b/src/app-layer-protos.h @@ -72,9 +72,6 @@ enum AppProtoEnum { /* used by the probing parser when alproto detection fails * permanently for that particular stream */ ALPROTO_FAILED, -#ifdef UNITTESTS - ALPROTO_TEST, -#endif /* UNITESTS */ /* keep last */ ALPROTO_MAX, }; diff --git a/src/output-json.c b/src/output-json.c index c55875a6758f..1f411cc110b8 100644 --- a/src/output-json.c +++ b/src/output-json.c @@ -1050,9 +1050,11 @@ static int LogFileTypePrepare( &json_ctx->file_ctx->filetype.init_data) < 0) { return -1; } - if (json_ctx->filetype->ThreadInit(json_ctx->file_ctx->filetype.init_data, 0, - &json_ctx->file_ctx->filetype.thread_data) < 0) { - return -1; + if (json_ctx->filetype->ThreadInit) { + if (json_ctx->filetype->ThreadInit(json_ctx->file_ctx->filetype.init_data, 0, + &json_ctx->file_ctx->filetype.thread_data) < 0) { + return -1; + } } json_ctx->file_ctx->filetype.filetype = json_ctx->filetype; } diff --git a/src/util-logopenfile.c b/src/util-logopenfile.c index 2fdbc33c99a0..24063e10954b 100644 --- a/src/util-logopenfile.c +++ b/src/util-logopenfile.c @@ -871,7 +871,7 @@ int LogFileFreeCtx(LogFileCtx *lf_ctx) SCReturnInt(0); } - if (lf_ctx->type == LOGFILE_TYPE_FILETYPE) { + if (lf_ctx->type == LOGFILE_TYPE_FILETYPE && lf_ctx->filetype.filetype->ThreadDeinit) { lf_ctx->filetype.filetype->ThreadDeinit( lf_ctx->filetype.init_data, lf_ctx->filetype.thread_data); }