Adding mem wrapper to debug runtime alloc()/free() functions. Fixing some memory leaks.

remotes/origin/master-1.0.x
Pablo Rincon 17 years ago committed by Victor Julien
parent ff664c9f6d
commit 25a3a5c6d8

@ -31,6 +31,8 @@ flow.c flow.h \
flow-queue.c flow-queue.h \
flow-hash.c flow-hash.h \
flow-util.c flow-util.h \
flow-mem.h \
util-mem.h \
flow-var.c flow-var.h \
flow-bit.c flow-bit.h \
flow-alert-sid.c flow-alert-sid.h \

@ -192,7 +192,7 @@ TmEcode AlertDebugLog (ThreadVars *tv, Packet *p, void *data, PacketQueue *pq)
TmEcode AlertDebugLogThreadInit(ThreadVars *t, void *initdata, void **data)
{
AlertDebugLogThread *aft = malloc(sizeof(AlertDebugLogThread));
AlertDebugLogThread *aft = SCMalloc(sizeof(AlertDebugLogThread));
if (aft == NULL) {
return TM_ECODE_FAILED;
}
@ -201,7 +201,7 @@ TmEcode AlertDebugLogThreadInit(ThreadVars *t, void *initdata, void **data)
if(initdata == NULL)
{
SCLogDebug("Error getting context for DebugLog. \"initdata\" argument NULL");
free(aft);
SCFree(aft);
return TM_ECODE_FAILED;
}
/** Use the Ouptut Context (file pointer and mutex) */
@ -221,7 +221,7 @@ TmEcode AlertDebugLogThreadDeinit(ThreadVars *t, void *data)
/* clear memory */
memset(aft, 0, sizeof(AlertDebugLogThread));
free(aft);
SCFree(aft);
return TM_ECODE_OK;
}

@ -171,7 +171,7 @@ TmEcode AlertFastLog (ThreadVars *tv, Packet *p, void *data, PacketQueue *pq)
TmEcode AlertFastLogThreadInit(ThreadVars *t, void *initdata, void **data)
{
AlertFastLogThread *aft = malloc(sizeof(AlertFastLogThread));
AlertFastLogThread *aft = SCMalloc(sizeof(AlertFastLogThread));
if (aft == NULL) {
return TM_ECODE_FAILED;
}
@ -179,7 +179,7 @@ TmEcode AlertFastLogThreadInit(ThreadVars *t, void *initdata, void **data)
if(initdata == NULL)
{
SCLogDebug("Error getting context for AlertFastLog. \"initdata\" argument NULL");
free(aft);
SCFree(aft);
return TM_ECODE_FAILED;
}
/** Use the Ouptut Context (file pointer and mutex) */
@ -198,7 +198,7 @@ TmEcode AlertFastLogThreadDeinit(ThreadVars *t, void *data)
/* clear memory */
memset(aft, 0, sizeof(AlertFastLogThread));
free(aft);
SCFree(aft);
return TM_ECODE_OK;
}

@ -713,7 +713,7 @@ TmEcode AlertPreludeThreadInit(ThreadVars *t, void *initdata, void **data)
SCReturnInt(TM_ECODE_FAILED);
}
aun = malloc(sizeof(AlertPreludeThread));
aun = SCMalloc(sizeof(AlertPreludeThread));
if (aun == NULL) {
SCReturnInt(TM_ECODE_FAILED);
}
@ -744,7 +744,7 @@ TmEcode AlertPreludeThreadDeinit(ThreadVars *t, void *data)
/* clear memory */
memset(aun, 0, sizeof(AlertPreludeThread));
free(aun);
SCFree(aun);
SCReturnInt(TM_ECODE_OK);
}
@ -801,7 +801,7 @@ LogFileCtx *AlertPreludeInitCtx(ConfNode *conf)
SCReturnPtr(NULL, "AlertPreludeCtx");
}
ctx = malloc(sizeof(AlertPreludeCtx));
ctx = SCMalloc(sizeof(AlertPreludeCtx));
if ( ctx == NULL ) {
prelude_perror(ret, "Unable to allocate memory");
prelude_client_destroy(client, PRELUDE_CLIENT_EXIT_STATUS_SUCCESS);

@ -238,7 +238,7 @@ TmEcode AlertUnifiedAlert (ThreadVars *tv, Packet *p, void *data, PacketQueue *p
TmEcode AlertUnifiedAlertThreadInit(ThreadVars *t, void *initdata, void **data)
{
AlertUnifiedAlertThread *aun = malloc(sizeof(AlertUnifiedAlertThread));
AlertUnifiedAlertThread *aun = SCMalloc(sizeof(AlertUnifiedAlertThread));
if (aun == NULL) {
return TM_ECODE_FAILED;
}
@ -246,7 +246,7 @@ TmEcode AlertUnifiedAlertThreadInit(ThreadVars *t, void *initdata, void **data)
if (initdata == NULL) {
SCLogDebug("Error getting context for UnifiedAlert. \"initdata\" argument NULL");
free(aun);
SCFree(aun);
return TM_ECODE_FAILED;
}
/** Use the Ouptut Context (file pointer and mutex) */
@ -270,7 +270,7 @@ TmEcode AlertUnifiedAlertThreadDeinit(ThreadVars *t, void *data)
}
/* clear memory */
memset(aun, 0, sizeof(AlertUnifiedAlertThread));
free(aun);
SCFree(aun);
return TM_ECODE_OK;
error:
@ -298,7 +298,7 @@ LogFileCtx *AlertUnifiedAlertInitCtx(ConfNode *conf)
filename = ConfNodeLookupChildValue(conf, "filename");
if (filename == NULL)
filename = DEFAULT_LOG_FILENAME;
file_ctx->prefix = strdup(filename);
file_ctx->prefix = SCStrdup(filename);
const char *s_limit = NULL;
uint32_t limit = DEFAULT_LIMIT;
@ -343,7 +343,7 @@ int AlertUnifiedAlertOpenFileCtx(LogFileCtx *file_ctx, const char *prefix)
if (file_ctx->filename != NULL)
filename = file_ctx->filename;
else
filename = file_ctx->filename = malloc(PATH_MAX); /* XXX some sane default? */
filename = file_ctx->filename = SCMalloc(PATH_MAX); /* XXX some sane default? */
/* get the time so we can have a filename with seconds since epoch */
struct timeval ts;
@ -400,7 +400,7 @@ static int AlertUnifiedAlertTestRotate01(void)
lf = AlertUnifiedAlertInitCtx(NULL);
if (lf == NULL)
return 0;
char *filename = strdup(lf->filename);
char *filename = SCStrdup(lf->filename);
memset(&tv, 0, sizeof(ThreadVars));

@ -254,7 +254,7 @@ TmEcode AlertUnifiedLog (ThreadVars *tv, Packet *p, void *data, PacketQueue *pq)
TmEcode AlertUnifiedLogThreadInit(ThreadVars *t, void *initdata, void **data)
{
AlertUnifiedLogThread *aun = malloc(sizeof(AlertUnifiedLogThread));
AlertUnifiedLogThread *aun = SCMalloc(sizeof(AlertUnifiedLogThread));
if (aun == NULL) {
return TM_ECODE_FAILED;
}
@ -262,12 +262,23 @@ TmEcode AlertUnifiedLogThreadInit(ThreadVars *t, void *initdata, void **data)
if (initdata == NULL) {
SCLogDebug("Error getting context for UnifiedLog. \"initdata\" argument NULL");
free(aun);
SCFree(aun);
return TM_ECODE_FAILED;
}
/** Use the Ouptut Context (file pointer and mutex) */
aun->file_ctx = (LogFileCtx*) initdata;
/** Write Unified header */
int ret = AlertUnifiedLogWriteFileHeader(aun->file_ctx);
if (ret != 0) {
printf("Error: AlertUnifiedLogWriteFileHeader failed.\n");
SCFree(aun);
return TM_ECODE_FAILED;
}
/* XXX make configurable */
aun->file_ctx->size_limit = 1 * 1024 * 1024;
*data = (void *)aun;
return TM_ECODE_OK;
}
@ -287,7 +298,7 @@ TmEcode AlertUnifiedLogThreadDeinit(ThreadVars *t, void *data)
/* clear memory */
memset(aun, 0, sizeof(AlertUnifiedLogThread));
free(aun);
SCFree(aun);
return TM_ECODE_OK;
error:
@ -316,7 +327,7 @@ LogFileCtx *AlertUnifiedLogInitCtx(ConfNode *conf)
}
if (filename == NULL)
filename = DEFAULT_LOG_FILENAME;
file_ctx->prefix = strdup(filename);
file_ctx->prefix = SCStrdup(filename);
const char *s_limit = NULL;
uint32_t limit = DEFAULT_LIMIT;
@ -362,7 +373,7 @@ int AlertUnifiedLogOpenFileCtx(LogFileCtx *file_ctx, const char *prefix)
if (file_ctx->filename != NULL)
filename = file_ctx->filename;
else
filename = file_ctx->filename = malloc(PATH_MAX); /* XXX some sane default? */
filename = file_ctx->filename = SCMalloc(PATH_MAX); /* XXX some sane default? */
/* get the time so we can have a filename with seconds since epoch */
struct timeval ts;
@ -417,7 +428,7 @@ static int AlertUnifiedLogTestRotate01(void)
lf = AlertUnifiedLogInitCtx(NULL);
if (lf == NULL)
return 0;
char *filename = strdup(lf->filename);
char *filename = SCStrdup(lf->filename);
memset(&tv, 0, sizeof(ThreadVars));

@ -520,7 +520,7 @@ int Unified2IPv4TypeAlert (ThreadVars *tv, Packet *p, void *data, PacketQueue *p
TmEcode Unified2AlertThreadInit(ThreadVars *t, void *initdata, void **data)
{
Unified2AlertThread *aun = malloc(sizeof(Unified2AlertThread));
Unified2AlertThread *aun = SCMalloc(sizeof(Unified2AlertThread));
if (aun == NULL) {
return TM_ECODE_FAILED;
}
@ -528,7 +528,7 @@ TmEcode Unified2AlertThreadInit(ThreadVars *t, void *initdata, void **data)
if(initdata == NULL)
{
SCLogDebug("Error getting context for Unified2Alert. \"initdata\" argument NULL");
free(aun);
SCFree(aun);
return TM_ECODE_FAILED;
}
/** Use the Ouptut Context (file pointer and mutex) */
@ -562,7 +562,7 @@ TmEcode Unified2AlertThreadDeinit(ThreadVars *t, void *data)
/* clear memory */
memset(aun, 0, sizeof(Unified2AlertThread));
free(aun);
SCFree(aun);
return TM_ECODE_OK;
error:
@ -590,7 +590,7 @@ LogFileCtx *Unified2AlertInitCtx(ConfNode *conf)
}
if (filename == NULL)
filename = DEFAULT_LOG_FILENAME;
file_ctx->prefix = strdup(filename);
file_ctx->prefix = SCStrdup(filename);
const char *s_limit = NULL;
uint32_t limit = DEFAULT_LIMIT;
@ -635,7 +635,7 @@ int Unified2AlertOpenFileCtx(LogFileCtx *file_ctx, const char *prefix)
if (file_ctx->filename != NULL)
filename = file_ctx->filename;
else
filename = file_ctx->filename = malloc(PATH_MAX); /* XXX some sane default? */
filename = file_ctx->filename = SCMalloc(PATH_MAX); /* XXX some sane default? */
/** get the time so we can have a filename with seconds since epoch */
struct timeval ts;
@ -805,7 +805,7 @@ static int Unified2Test02 (void) {
* \retval 0 on failure
*/
static int Unified2Test03 (void) {
static int Unified2Test03 (void) {
ThreadVars tv;
DecodeThreadVars dtv;
PacketQueue pq;
@ -866,6 +866,12 @@ static int Unified2Test03 (void) {
if(LogFileFreeCtx(lf)==0)
return 0;
Packet *pkt = PacketDequeue(&pq);
while (pkt != NULL) {
SCFree(pkt);
pkt = PacketDequeue(&pq);
}
return 1;
}
@ -1012,7 +1018,7 @@ static int Unified2TestRotate01(void)
lf = Unified2AlertInitCtx(NULL);
if (lf == NULL)
return 0;
char *filename = strdup(lf->filename);
char *filename = SCStrdup(lf->filename);
memset(&tv, 0, sizeof(ThreadVars));
@ -1042,7 +1048,7 @@ static int Unified2TestRotate01(void)
error:
Unified2AlertThreadDeinit(&tv, data);
if (lf != NULL) LogFileFreeCtx(lf);
if (filename != NULL) free(filename);
if (filename != NULL) SCFree(filename);
return r;
}
#endif

@ -215,7 +215,7 @@ static uint32_t DCERPCParseBINDCTXItem(DCERPC *dcerpc, uint8_t *input, uint32_t
dcerpc->dcerpcbindbindack.versionminor |= *(p + 23) << 8;
if (dcerpc->dcerpcbindbindack.ctxid == dcerpc->dcerpcbindbindack.numctxitems
- dcerpc->dcerpcbindbindack.numctxitemsleft) {
dcerpc->dcerpcbindbindack.uuid_entry = (struct uuid_entry *) calloc(1,
dcerpc->dcerpcbindbindack.uuid_entry = (struct uuid_entry *) SCCalloc(1,
sizeof(struct uuid_entry));
if (dcerpc->dcerpcbindbindack.uuid_entry == NULL) {
SCReturnUInt(0);
@ -421,7 +421,7 @@ static uint32_t DCERPCParseBINDCTXItem(DCERPC *dcerpc, uint8_t *input, uint32_t
p++;
--input_len;
if (dcerpc->dcerpcbindbindack.ctxid == dcerpc->dcerpcbindbindack.numctxitems - dcerpc->dcerpcbindbindack.numctxitemsleft) {
dcerpc->dcerpcbindbindack.uuid_entry = (struct uuid_entry *) calloc(1,
dcerpc->dcerpcbindbindack.uuid_entry = (struct uuid_entry *) SCCalloc(1,
sizeof(struct uuid_entry));
if (dcerpc->dcerpcbindbindack.uuid_entry == NULL) {
SCReturnUInt(0);
@ -1238,7 +1238,7 @@ static int DCERPCParse(Flow *f, void *dcerpc_state,
}
static void *DCERPCStateAlloc(void) {
void *s = malloc(sizeof(DCERPCState));
void *s = SCMalloc(sizeof(DCERPCState));
if (s == NULL)
return NULL;
@ -1254,11 +1254,11 @@ static void DCERPCStateFree(void *s) {
while ((item = TAILQ_FIRST(&sstate->dcerpc.dcerpcbindbindack.uuid_list))) {
//printUUID("Free", item);
TAILQ_REMOVE(&sstate->dcerpc.dcerpcbindbindack.uuid_list, item, next);
free(item);
SCFree(item);
}
if (s) {
free(s);
SCFree(s);
s = NULL;
}
}

@ -306,7 +306,7 @@ uint16_t AppLayerDetectGetProto(AlpProtoDetectCtx *ctx, AlpProtoDetectThreadCtx
&tdir->pmq, buf,
scanlen);
#else
Packet *p = malloc(sizeof(Packet));
Packet *p = SCMalloc(sizeof(Packet));
if (p == NULL) goto end;
memset(p, 0, sizeof(Packet));
p->cuda_done = 0;
@ -525,7 +525,7 @@ void AppLayerDetectProtoThreadSpawn()
#ifdef UNITTESTS
int AlpDetectTest01(void) {
char *buf = strdup("HTTP");
char *buf = SCStrdup("HTTP");
int r = 1;
AlpProtoDetectCtx ctx;
@ -540,18 +540,18 @@ int AlpDetectTest01(void) {
AlpProtoInit(&ctx);
AlpProtoAdd(&ctx, IPPROTO_TCP, ALPROTO_HTTP, buf, 4, 0, STREAM_TOCLIENT);
free(buf);
SCFree(buf);
if (ctx.toclient.id != 1) {
r = 0;
}
buf = strdup("GET");
buf = SCStrdup("GET");
AlpProtoAdd(&ctx, IPPROTO_TCP, ALPROTO_HTTP, buf, 4, 0, STREAM_TOSERVER);
if (ctx.toserver.id != 1) {
r = 0;
}
free(buf);
SCFree(buf);
AlpProtoTestDestroy(&ctx);
@ -566,7 +566,7 @@ int AlpDetectTest01(void) {
}
int AlpDetectTest02(void) {
char *buf = strdup("HTTP");
char *buf = SCStrdup("HTTP");
int r = 1;
AlpProtoDetectCtx ctx;
@ -581,7 +581,7 @@ int AlpDetectTest02(void) {
AlpProtoInit(&ctx);
AlpProtoAdd(&ctx, IPPROTO_TCP, ALPROTO_HTTP, buf, 4, 0, STREAM_TOCLIENT);
free(buf);
SCFree(buf);
if (ctx.toclient.id != 1) {
r = 0;
@ -591,9 +591,9 @@ int AlpDetectTest02(void) {
r = 0;
}
buf = strdup("220 ");
buf = SCStrdup("220 ");
AlpProtoAdd(&ctx, IPPROTO_TCP, ALPROTO_FTP, buf, 4, 0, STREAM_TOCLIENT);
free(buf);
SCFree(buf);
if (ctx.toclient.id != 2) {
r = 0;
@ -617,7 +617,7 @@ int AlpDetectTest02(void) {
int AlpDetectTest03(void) {
uint8_t l7data[] = "HTTP/1.1 200 OK\r\nServer: Apache/1.0\r\n\r\n";
char *buf = strdup("HTTP");
char *buf = SCStrdup("HTTP");
int r = 1;
AlpProtoDetectCtx ctx;
AlpProtoDetectThreadCtx tctx;
@ -633,7 +633,7 @@ int AlpDetectTest03(void) {
AlpProtoInit(&ctx);
AlpProtoAdd(&ctx, IPPROTO_TCP, ALPROTO_HTTP, buf, 4, 0, STREAM_TOCLIENT);
free(buf);
SCFree(buf);
if (ctx.toclient.id != 1) {
r = 0;
@ -643,9 +643,9 @@ int AlpDetectTest03(void) {
r = 0;
}
buf = strdup("220 ");
buf = SCStrdup("220 ");
AlpProtoAdd(&ctx, IPPROTO_TCP, ALPROTO_FTP, buf, 4, 0, STREAM_TOCLIENT);
free(buf);
SCFree(buf);
if (ctx.toclient.id != 2) {
r = 0;
@ -686,7 +686,7 @@ int AlpDetectTest03(void) {
int AlpDetectTest04(void) {
uint8_t l7data[] = "HTTP/1.1 200 OK\r\nServer: Apache/1.0\r\n\r\n";
char *buf = strdup("200 ");
char *buf = SCStrdup("200 ");
int r = 1;
AlpProtoDetectCtx ctx;
AlpProtoDetectThreadCtx tctx;
@ -702,7 +702,7 @@ int AlpDetectTest04(void) {
AlpProtoInit(&ctx);
AlpProtoAdd(&ctx, IPPROTO_TCP, ALPROTO_HTTP, buf, 4, 0, STREAM_TOCLIENT);
free(buf);
SCFree(buf);
if (ctx.toclient.id != 1) {
r = 0;
@ -743,7 +743,7 @@ int AlpDetectTest04(void) {
int AlpDetectTest05(void) {
uint8_t l7data[] = "HTTP/1.1 200 OK\r\nServer: Apache/1.0\r\n\r\n<HTML><BODY>Blahblah</BODY></HTML>";
char *buf = strdup("HTTP");
char *buf = SCStrdup("HTTP");
int r = 1;
AlpProtoDetectCtx ctx;
@ -760,7 +760,7 @@ int AlpDetectTest05(void) {
AlpProtoInit(&ctx);
AlpProtoAdd(&ctx, IPPROTO_TCP, ALPROTO_HTTP, buf, 4, 0, STREAM_TOCLIENT);
free(buf);
SCFree(buf);
if (ctx.toclient.id != 1) {
r = 0;
@ -770,9 +770,9 @@ int AlpDetectTest05(void) {
r = 0;
}
buf = strdup("220 ");
buf = SCStrdup("220 ");
AlpProtoAdd(&ctx, IPPROTO_TCP, ALPROTO_FTP, buf, 4, 0, STREAM_TOCLIENT);
free(buf);
SCFree(buf);
if (ctx.toclient.id != 2) {
r = 0;
@ -813,7 +813,7 @@ int AlpDetectTest05(void) {
int AlpDetectTest06(void) {
uint8_t l7data[] = "220 Welcome to the OISF FTP server\r\n";
char *buf = strdup("HTTP");
char *buf = SCStrdup("HTTP");
int r = 1;
AlpProtoDetectCtx ctx;
AlpProtoDetectThreadCtx tctx;
@ -829,7 +829,7 @@ int AlpDetectTest06(void) {
AlpProtoInit(&ctx);
AlpProtoAdd(&ctx, IPPROTO_TCP, ALPROTO_HTTP, buf, 4, 0, STREAM_TOCLIENT);
free(buf);
SCFree(buf);
if (ctx.toclient.id != 1) {
r = 0;
@ -839,9 +839,9 @@ int AlpDetectTest06(void) {
r = 0;
}
buf = strdup("220 ");
buf = SCStrdup("220 ");
AlpProtoAdd(&ctx, IPPROTO_TCP, ALPROTO_FTP, buf, 4, 0, STREAM_TOCLIENT);
free(buf);
SCFree(buf);
if (ctx.toclient.id != 2) {
r = 0;
@ -882,7 +882,7 @@ int AlpDetectTest06(void) {
int AlpDetectTest07(void) {
uint8_t l7data[] = "220 Welcome to the OISF HTTP/FTP server\r\n";
char *buf = strdup("HTTP");
char *buf = SCStrdup("HTTP");
int r = 1;
AlpProtoDetectCtx ctx;
AlpProtoDetectThreadCtx tctx;
@ -898,7 +898,7 @@ int AlpDetectTest07(void) {
AlpProtoInit(&ctx);
AlpProtoAdd(&ctx, IPPROTO_TCP, ALPROTO_HTTP, buf, 4, 0, STREAM_TOCLIENT);
free(buf);
SCFree(buf);
if (ctx.toclient.id != 1) {
r = 0;
@ -950,7 +950,7 @@ int AlpDetectTest08(void) {
"\x20\x66\x6f\x72\x20\x57\x6f\x72\x6b\x67\x72\x6f\x75\x70\x73\x20\x33\x2e\x31\x61\x00\x02\x4c"
"\x4d\x31\x2e\x32\x58\x30\x30\x32\x00\x02\x4c\x41\x4e\x4d\x41\x4e\x32\x2e\x31\x00\x02\x4e\x54"
"\x20\x4c\x4d\x20\x30\x2e\x31\x32\x00";
char *buf = strdup("|ff|SMB");
char *buf = SCStrdup("|ff|SMB");
int r = 1;
AlpProtoDetectCtx ctx;
AlpProtoDetectThreadCtx tctx;
@ -966,7 +966,7 @@ int AlpDetectTest08(void) {
AlpProtoInit(&ctx);
AlpProtoAdd(&ctx, IPPROTO_TCP, ALPROTO_SMB, buf, 8, 4, STREAM_TOCLIENT);
free(buf);
SCFree(buf);
if (ctx.toclient.id != 1) {
r = 0;
@ -1015,7 +1015,7 @@ int AlpDetectTest09(void) {
"\x24\x00\x01\x00x00\x00\x00\x00\x00\x00\x0\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x02";
char *buf = strdup("|fe|SMB");
char *buf = SCStrdup("|fe|SMB");
int r = 1;
AlpProtoDetectCtx ctx;
AlpProtoDetectThreadCtx tctx;
@ -1031,7 +1031,7 @@ int AlpDetectTest09(void) {
AlpProtoInit(&ctx);
AlpProtoAdd(&ctx, IPPROTO_TCP, ALPROTO_SMB2, buf, 8, 4, STREAM_TOCLIENT);
free(buf);
SCFree(buf);
if (ctx.toclient.id != 1) {
r = 0;
@ -1075,7 +1075,7 @@ int AlpDetectTest10(void) {
"\x01\x00\xb8\x4a\x9f\x4d\x1c\x7d\xcf\x11\x86\x1e\x00\x20\xaf\x6e\x7c\x57"
"\x00\x00\x00\x00\x04\x5d\x88\x8a\xeb\x1c\xc9\x11\x9f\xe8\x08\x00\x2b\x10"
"\x48\x60\x02\x00\x00\x00";
char *buf = strdup("|05 00|");
char *buf = SCStrdup("|05 00|");
int r = 1;
AlpProtoDetectCtx ctx;
AlpProtoDetectThreadCtx tctx;
@ -1091,7 +1091,7 @@ int AlpDetectTest10(void) {
AlpProtoInit(&ctx);
AlpProtoAdd(&ctx, IPPROTO_TCP, ALPROTO_DCERPC, buf, 4, 0, STREAM_TOCLIENT);
free(buf);
SCFree(buf);
if (ctx.toclient.id != 1) {
r = 0;

@ -110,8 +110,8 @@ static int FTPParseRequestCommandLine(Flow *f, void *ftp_state, AppLayerParserSt
* the ftpbounce condition directly from detect-ftpbounce
*/
if (fstate->port_line != NULL)
free(fstate->port_line);
fstate->port_line = malloc(input_len);
SCFree(fstate->port_line);
fstate->port_line = SCMalloc(input_len);
if (fstate->port_line == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating"
"memory");
@ -219,7 +219,7 @@ static uint64_t ftp_state_memcnt = 0;
#endif
static void *FTPStateAlloc(void) {
void *s = malloc(sizeof(FtpState));
void *s = SCMalloc(sizeof(FtpState));
if (s == NULL)
return NULL;
@ -235,7 +235,7 @@ static void *FTPStateAlloc(void) {
}
static void FTPStateFree(void *s) {
free(s);
SCFree(s);
#ifdef DEBUG
SCMutexLock(&ftp_state_mem_lock);
ftp_state_memcnt--;

@ -31,6 +31,7 @@
#include "util-debug.h"
#include "app-layer-htp.h"
#include "util-time.h"
#include <htp/htp.h>
#ifdef DEBUG
static SCMutex htp_state_mem_lock = PTHREAD_MUTEX_INITIALIZER;
@ -46,7 +47,7 @@ static void *HTPStateAlloc(void)
{
SCEnter();
HtpState *s = malloc(sizeof(HtpState));
HtpState *s = SCMalloc(sizeof(HtpState));
if (s == NULL) {
goto error;
}
@ -79,7 +80,7 @@ error:
if (s->connp != NULL)
htp_connp_destroy(s->connp);
free(s);
SCFree(s);
}
SCReturnPtr(NULL, "void");
@ -88,7 +89,7 @@ error:
/** \brief Function to frees the HTTP state memory and also frees the HTTP
* connection parser memory which was used by the HTP library
*/
static void HTPStateFree(void *state)
void HTPStateFree(void *state)
{
SCEnter();
@ -105,7 +106,7 @@ static void HTPStateFree(void *state)
}
}
free(s);
SCFree(s);
#ifdef DEBUG
SCMutexLock(&htp_state_mem_lock);
@ -305,7 +306,7 @@ void HtpBodyAppendChunk(HtpBody *body, uint8_t *data, uint32_t len)
BodyChunk *bd = NULL;
if (body->nchunks == 0) {
/* New chunk */
bd = (BodyChunk *)malloc(sizeof(BodyChunk));
bd = (BodyChunk *)SCMalloc(sizeof(BodyChunk));
if (bd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Fatal error, error allocationg memory");
exit(EXIT_FAILURE);
@ -325,7 +326,7 @@ void HtpBodyAppendChunk(HtpBody *body, uint8_t *data, uint32_t len)
body->last->len = len;
bd = body->last;
} else {
bd = (BodyChunk *)malloc(sizeof(BodyChunk));
bd = (BodyChunk *)SCMalloc(sizeof(BodyChunk));
bd->len = len;
bd->data = data;
body->last->next = bd;
@ -384,7 +385,7 @@ void HtpBodyFree(HtpBody *body)
prev = body->first;
while (prev != NULL) {
cur = prev->next;
free(prev);
SCFree(prev);
prev = cur;
}
body->first = body->last = NULL;
@ -555,6 +556,8 @@ int HTPParserTest01(void) {
" Data is c0oL!";
uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */
TcpSession ssn;
HtpState *htp_state = NULL;
int r = 0;
memset(&f, 0, sizeof(f));
memset(&ssn, 0, sizeof(ssn));
@ -580,7 +583,7 @@ int HTPParserTest01(void) {
}
}
HtpState *htp_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
htp_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
if (htp_state == NULL) {
printf("no http state: ");
result = 0;
@ -610,6 +613,8 @@ int HTPParserTest01(void) {
end:
StreamL7DataPtrFree(&ssn);
StreamTcpFreeConfig(TRUE);
if (htp_state != NULL)
HTPStateFree(htp_state);
return result;
}
@ -620,6 +625,7 @@ int HTPParserTest02(void) {
uint8_t httpbuf1[] = "POST";
uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */
TcpSession ssn;
HtpState *http_state = NULL;
memset(&f, 0, sizeof(f));
memset(&ssn, 0, sizeof(ssn));
@ -636,7 +642,7 @@ int HTPParserTest02(void) {
goto end;
}
HtpState *http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
if (http_state == NULL) {
printf("no http state: ");
result = 0;
@ -660,6 +666,8 @@ int HTPParserTest02(void) {
end:
StreamL7DataPtrFree(&ssn);
StreamTcpFreeConfig(TRUE);
if (http_state != NULL)
HTPStateFree(http_state);
return result;
}
@ -671,6 +679,8 @@ int HTPParserTest03(void) {
uint8_t httpbuf1[] = "HELLO / HTTP/1.0\r\n";
uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */
TcpSession ssn;
HtpState *htp_state = NULL;
int r = 0;
memset(&f, 0, sizeof(f));
memset(&ssn, 0, sizeof(ssn));
@ -695,8 +705,7 @@ int HTPParserTest03(void) {
goto end;
}
}
HtpState *htp_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
htp_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
if (htp_state == NULL) {
printf("no http state: ");
result = 0;
@ -723,6 +732,8 @@ int HTPParserTest03(void) {
end:
StreamL7DataPtrFree(&ssn);
StreamTcpFreeConfig(TRUE);
if (htp_state != NULL)
HTPStateFree(htp_state);
return result;
}
@ -731,6 +742,7 @@ end:
int HTPParserTest04(void) {
int result = 1;
Flow f;
HtpState *htp_state = NULL;
uint8_t httpbuf1[] = "World!\r\n";
uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */
TcpSession ssn;
@ -745,7 +757,7 @@ int HTPParserTest04(void) {
r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOSERVER|STREAM_START|
STREAM_EOF, httpbuf1, httplen1);
HtpState *htp_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
htp_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
if (htp_state == NULL) {
printf("no http state: ");
result = 0;
@ -772,6 +784,8 @@ int HTPParserTest04(void) {
end:
StreamL7DataPtrFree(&ssn);
StreamTcpFreeConfig(TRUE);
if (htp_state != NULL)
HTPStateFree(htp_state);
return result;
}
@ -780,6 +794,7 @@ end:
int HTPParserTest05(void) {
int result = 1;
Flow f;
HtpState *http_state = NULL;
uint8_t httpbuf1[] = "POST / HTTP/1.0\r\nUser-Agent: Victor/1.0\r\n\r\n";
uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */
uint8_t httpbuf2[] = "Post D";
@ -848,7 +863,7 @@ int HTPParserTest05(void) {
goto end;
}
HtpState *http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
if (http_state == NULL) {
printf("no http state: ");
result = 0;
@ -885,6 +900,8 @@ int HTPParserTest05(void) {
end:
StreamL7DataPtrFree(&ssn);
StreamTcpFreeConfig(TRUE);
if (http_state != NULL)
HTPStateFree(http_state);
return result;
}
@ -936,6 +953,7 @@ int HTPParserTest06(void) {
"aHA=0\r\n\r\n";
uint32_t httplen2 = sizeof(httpbuf2) - 1; /* minus the \0 */
TcpSession ssn;
HtpState *http_state = NULL;
memset(&f, 0, sizeof(f));
memset(&ssn, 0, sizeof(ssn));
@ -960,7 +978,7 @@ int HTPParserTest06(void) {
goto end;
}
HtpState *http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
if (http_state == NULL) {
printf("no http state: ");
result = 0;
@ -997,6 +1015,8 @@ int HTPParserTest06(void) {
end:
StreamL7DataPtrFree(&ssn);
StreamTcpFreeConfig(TRUE);
if (http_state != NULL)
HTPStateFree(http_state);
return result;
}
#endif /* UNITTESTS */

@ -90,6 +90,8 @@ int HTPCallbackRequestBodyData(htp_tx_data_t *);
void HtpBodyPrint(HtpBody *);
void HtpBodyFree(HtpBody *);
void AppLayerHtpRegisterExtraCallbacks(void);
/* To free the state from unittests using app-layer-htp */
void HTPStateFree(void *);
#endif /* __APP_LAYER_HTP_H__ */

@ -40,7 +40,7 @@ static uint32_t al_result_pool_elmts = 0;
/** \brief Alloc a AppLayerParserResultElmt func for the pool */
static void *AlpResultElmtPoolAlloc(void *null)
{
AppLayerParserResultElmt *e = (AppLayerParserResultElmt *)malloc
AppLayerParserResultElmt *e = (AppLayerParserResultElmt *)SCMalloc
(sizeof(AppLayerParserResultElmt));
if (e == NULL) {
return NULL;
@ -61,9 +61,9 @@ static void AlpResultElmtPoolFree(void *e)
if (re->flags & ALP_RESULT_ELMT_ALLOC) {
if (re->data_ptr != NULL)
free(re->data_ptr);
SCFree(re->data_ptr);
}
free(re);
SCFree(re);
#ifdef DEBUG
al_result_pool_elmts--;
@ -88,7 +88,7 @@ static void AlpReturnResultElmt(AppLayerParserResultElmt *e)
{
if (e->flags & ALP_RESULT_ELMT_ALLOC) {
if (e->data_ptr != NULL)
free(e->data_ptr);
SCFree(e->data_ptr);
}
e->flags = 0;
e->data_ptr = NULL;
@ -154,7 +154,7 @@ int AlpParseFieldBySize(AppLayerParserResult *output, AppLayerParserState *pstat
if ((pstate->store_len + input_len) < size) {
if (pstate->store_len == 0) {
pstate->store = malloc(input_len);
pstate->store = SCMalloc(input_len);
if (pstate->store == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Memory allocation failed!");
SCReturnInt(-1);
@ -163,7 +163,7 @@ int AlpParseFieldBySize(AppLayerParserResult *output, AppLayerParserState *pstat
memcpy(pstate->store, input, input_len);
pstate->store_len = input_len;
} else {
pstate->store = realloc(pstate->store, (input_len + pstate->store_len));
pstate->store = SCRealloc(pstate->store, (input_len + pstate->store_len));
if (pstate->store == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Memory reallocation failed!");
SCReturnInt(-1);
@ -185,7 +185,7 @@ int AlpParseFieldBySize(AppLayerParserResult *output, AppLayerParserState *pstat
} else {
uint32_t diff = size - pstate->store_len;
pstate->store = realloc(pstate->store, (diff + pstate->store_len));
pstate->store = SCRealloc(pstate->store, (diff + pstate->store_len));
if (pstate->store == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Memory reallocation failed!");
SCReturnInt(-1);
@ -239,7 +239,7 @@ int AlpParseFieldByEOF(AppLayerParserResult *output, AppLayerParserState *pstate
SCLogDebug("store_len 0 but no EOF");
/* delimiter field not found, so store the result for the next run */
pstate->store = malloc(input_len);
pstate->store = SCMalloc(input_len);
if (pstate->store == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Memory allocation failed!");
SCReturnInt(-1);
@ -252,7 +252,7 @@ int AlpParseFieldByEOF(AppLayerParserResult *output, AppLayerParserState *pstate
if (pstate->flags & APP_LAYER_PARSER_EOF) {
SCLogDebug("store_len %" PRIu32 " and EOF", pstate->store_len);
pstate->store = realloc(pstate->store, (input_len + pstate->store_len));
pstate->store = SCRealloc(pstate->store, (input_len + pstate->store_len));
if (pstate->store == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Memory reallocation failed!");
SCReturnInt(-1);
@ -275,7 +275,7 @@ int AlpParseFieldByEOF(AppLayerParserResult *output, AppLayerParserState *pstate
SCLogDebug("store_len %" PRIu32 " but no EOF", pstate->store_len);
/* delimiter field not found, so store the result for the next run */
pstate->store = realloc(pstate->store, (input_len + pstate->store_len));
pstate->store = SCRealloc(pstate->store, (input_len + pstate->store_len));
if (pstate->store == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Memory reallocation failed!");
SCReturnInt(-1);
@ -326,7 +326,7 @@ int AlpParseFieldByDelimiter(AppLayerParserResult *output, AppLayerParserState *
SCLogDebug("delim not found, continue");
/* delimiter field not found, so store the result for the next run */
pstate->store = malloc(input_len);
pstate->store = SCMalloc(input_len);
if (pstate->store == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Memory allocation failed!");
SCReturnInt(-1);
@ -342,7 +342,7 @@ int AlpParseFieldByDelimiter(AppLayerParserResult *output, AppLayerParserState *
SCLogDebug("len %" PRIu32 " + %" PRIu32 " = %" PRIu32 "", len,
pstate->store_len, len + pstate->store_len);
pstate->store = realloc(pstate->store, (len + pstate->store_len));
pstate->store = SCRealloc(pstate->store, (len + pstate->store_len));
if (pstate->store == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Memory reallocation failed!");
SCReturnInt(-1);
@ -369,7 +369,7 @@ int AlpParseFieldByDelimiter(AppLayerParserResult *output, AppLayerParserState *
if (delim_len > input_len) {
/* delimiter field not found, so store the result for the
* next run */
pstate->store = realloc(pstate->store, (input_len +
pstate->store = SCRealloc(pstate->store, (input_len +
pstate->store_len));
if (pstate->store == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Memory reallocation failed!");
@ -409,14 +409,14 @@ int AlpParseFieldByDelimiter(AppLayerParserResult *output, AppLayerParserState *
}
free_and_return:
SCLogDebug("not found and EOF, so free what we have so far.");
free(pstate->store);
SCFree(pstate->store);
pstate->store = NULL;
pstate->store_len = 0;
SCReturnInt(0);
}
/* delimiter field not found, so store the result for the next run */
pstate->store = realloc(pstate->store, (input_len + pstate->store_len));
pstate->store = SCRealloc(pstate->store, (input_len + pstate->store_len));
if (pstate->store == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Memory reallocation failed!");
SCReturnInt(-1);
@ -582,7 +582,7 @@ uint16_t AlpGetStateIdx(uint16_t proto)
AppLayerParserStateStore *AppLayerParserStateStoreAlloc(void)
{
AppLayerParserStateStore *s = (AppLayerParserStateStore *)malloc
AppLayerParserStateStore *s = (AppLayerParserStateStore *)SCMalloc
(sizeof(AppLayerParserStateStore));
if (s == NULL)
return NULL;
@ -596,11 +596,11 @@ AppLayerParserStateStore *AppLayerParserStateStoreAlloc(void)
void AppLayerParserStateStoreFree(AppLayerParserStateStore *s)
{
if (s->to_server.store != NULL)
free(s->to_server.store);
SCFree(s->to_server.store);
if (s->to_client.store != NULL)
free(s->to_client.store);
SCFree(s->to_client.store);
free(s);
SCFree(s);
}
static void AppLayerParserResultCleanup(AppLayerParserResult *result)
@ -898,7 +898,7 @@ void AppLayerParserCleanupState(TcpSession *ssn)
}
StreamTcpDecrMemuse((uint32_t)(StreamL7GetStorageSize() * sizeof(void *)));
free(ssn->aldata);
SCFree(ssn->aldata);
ssn->aldata = NULL;
}
}
@ -933,7 +933,7 @@ void AppLayerParsersInitPostProcess(void)
continue;
al_proto_table[u16].map_size++;
al_proto_table[u16].map = (AppLayerLocalMap **)malloc
al_proto_table[u16].map = (AppLayerLocalMap **)SCMalloc
(al_proto_table[u16].map_size *
sizeof(AppLayerLocalMap *));
if (al_proto_table[u16].map == NULL) {
@ -956,7 +956,7 @@ void AppLayerParsersInitPostProcess(void)
SCLogDebug("parser_local_id: %" PRIu32 "", parser_local_id);
if (parser_local_id < al_proto_table[u16].map_size) {
al_proto_table[u16].map[parser_local_id] = malloc(sizeof(AppLayerLocalMap));
al_proto_table[u16].map[parser_local_id] = SCMalloc(sizeof(AppLayerLocalMap));
if (al_proto_table[u16].map[parser_local_id] == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "XXX memory error");
exit(1);
@ -1007,7 +1007,7 @@ static int TestProtocolParser(Flow *f, void *test_state, AppLayerParserState *ps
*/
static void *TestProtocolStateAlloc(void)
{
void *s = malloc(sizeof(TestState));
void *s = SCMalloc(sizeof(TestState));
if (s == NULL)
return NULL;
@ -1019,7 +1019,7 @@ static void *TestProtocolStateAlloc(void)
*/
static void TestProtocolStateFree(void *s)
{
free(s);
SCFree(s);
}
/** \test Test the deallocation of app layer parser memory on occurance of

@ -1097,7 +1097,7 @@ int isAndX(SMBState *smb_state) {
}
static void *SMBStateAlloc(void) {
void *s = malloc(sizeof(SMBState));
void *s = SCMalloc(sizeof(SMBState));
if (s == NULL)
return NULL;
@ -1107,7 +1107,7 @@ static void *SMBStateAlloc(void) {
static void SMBStateFree(void *s) {
if (s) {
free(s);
SCFree(s);
s = NULL;
}
}

@ -400,7 +400,7 @@ static int SMB2Parse(Flow *f, void *smb2_state, AppLayerParserState *pstate,
static void *SMB2StateAlloc(void) {
void *s = malloc(sizeof(SMB2State));
void *s = SCMalloc(sizeof(SMB2State));
if (s == NULL)
return NULL;
@ -410,7 +410,7 @@ static void *SMB2StateAlloc(void) {
static void SMB2StateFree(void *s) {
if (s) {
free(s);
SCFree(s);
s = NULL;
}
}

@ -485,7 +485,7 @@ static int TLSParseServerContentType(Flow *f, void *tls_state, AppLayerParserSta
*/
static void *TLSStateAlloc(void)
{
void *s = malloc(sizeof(TlsState));
void *s = SCMalloc(sizeof(TlsState));
if (s == NULL)
return NULL;
@ -497,7 +497,7 @@ static void *TLSStateAlloc(void)
*/
static void TLSStateFree(void *s)
{
free(s);
SCFree(s);
}
/** \brief Function to register the TLS protocol parsers and other functions

@ -77,16 +77,16 @@ ConfYamlParse(yaml_parser_t *parser, ConfNode *parent, int inseq)
value, inseq);
if (inseq) {
ConfNode *seq_node = ConfNodeNew();
seq_node->name = calloc(1, DEFAULT_NAME_LEN);
seq_node->name = SCCalloc(1, DEFAULT_NAME_LEN);
snprintf(seq_node->name, DEFAULT_NAME_LEN, "%d", seq_idx++);
seq_node->val = strdup(value);
seq_node->val = SCStrdup(value);
TAILQ_INSERT_TAIL(&parent->head, seq_node, next);
}
else {
if (state == CONF_KEY) {
if (parent->is_seq) {
if (parent->val == NULL) {
parent->val = strdup(value);
parent->val = SCStrdup(value);
}
}
ConfNode *n0 = ConfNodeLookupChild(parent, value);
@ -95,7 +95,7 @@ ConfYamlParse(yaml_parser_t *parser, ConfNode *parent, int inseq)
}
else {
node = ConfNodeNew();
node->name = strdup(value);
node->name = SCStrdup(value);
TAILQ_INSERT_TAIL(&parent->head, node, next);
}
state = CONF_VAL;
@ -103,8 +103,8 @@ ConfYamlParse(yaml_parser_t *parser, ConfNode *parent, int inseq)
else {
if (node->allow_override) {
if (node->val != NULL)
free(node->val);
node->val = strdup(value);
SCFree(node->val);
node->val = SCStrdup(value);
}
state = CONF_KEY;
}
@ -125,7 +125,7 @@ ConfYamlParse(yaml_parser_t *parser, ConfNode *parent, int inseq)
if (inseq) {
ConfNode *seq_node = ConfNodeNew();
seq_node->is_seq = 1;
seq_node->name = calloc(1, DEFAULT_NAME_LEN);
seq_node->name = SCCalloc(1, DEFAULT_NAME_LEN);
snprintf(seq_node->name, DEFAULT_NAME_LEN, "%d", seq_idx++);
TAILQ_INSERT_TAIL(&node->head, seq_node, next);
ConfYamlParse(parser, seq_node, 0);

@ -59,7 +59,7 @@ ConfNodeNew(void)
{
ConfNode *new;
new = calloc(1, sizeof(*new));
new = SCCalloc(1, sizeof(*new));
if (new == NULL) {
SCLogError(SC_ERR_MEM_ALLOC,
"Error allocating memory for new configuration node");
@ -75,7 +75,7 @@ ConfNodeNew(void)
/**
* \brief Free a ConfNode and all of its children.
*
* \param node The configuration node to free.
* \param node The configuration node to SCFree.
*/
void
ConfNodeFree(ConfNode *node)
@ -88,10 +88,10 @@ ConfNodeFree(ConfNode *node)
}
if (node->name != NULL)
free(node->name);
SCFree(node->name);
if (node->val != NULL)
free(node->val);
free(node);
SCFree(node->val);
SCFree(node);
}
/**
@ -110,7 +110,7 @@ ConfGetNode(char *key)
char *token;
/* Need to dup the key for tokenization... */
char *tokstr = strdup(key);
char *tokstr = SCStrdup(key);
token = strtok_r(tokstr, ".", &saveptr);
for (;;) {
@ -121,7 +121,7 @@ ConfGetNode(char *key)
if (token == NULL)
break;
}
free(tokstr);
SCFree(tokstr);
return node;
}
@ -159,20 +159,20 @@ ConfSet(char *name, char *val, int allow_override)
}
else {
if (node->val != NULL)
free(node->val);
node->val = strdup(val);
SCFree(node->val);
node->val = SCStrdup(val);
node->allow_override = allow_override;
return 1;
}
}
else {
char *tokstr = strdup(name);
char *tokstr = SCStrdup(name);
token = strtok_r(tokstr, ".", &saveptr);
node = ConfNodeLookupChild(parent, token);
for (;;) {
if (node == NULL) {
node = ConfNodeNew();
node->name = strdup(token);
node->name = SCStrdup(token);
node->parent = parent;
TAILQ_INSERT_TAIL(&parent->head, node, next);
parent = node;
@ -185,8 +185,8 @@ ConfSet(char *name, char *val, int allow_override)
if (!node->allow_override)
break;
if (node->val != NULL)
free(node->val);
node->val = strdup(val);
SCFree(node->val);
node->val = SCStrdup(val);
node->allow_override = allow_override;
break;
}
@ -194,7 +194,7 @@ ConfSet(char *name, char *val, int allow_override)
node = ConfNodeLookupChild(parent, token);
}
}
free(tokstr);
SCFree(tokstr);
}
SCLogDebug("configuration parameter '%s' set", name);
@ -295,7 +295,7 @@ ConfGetBool(char *name, int *val)
}
/**
* \brief Remove (and free) the provided configuration node.
* \brief Remove (and SCFree) the provided configuration node.
*/
void
ConfNodeRemove(ConfNode *node)
@ -392,7 +392,7 @@ ConfNodeDump(ConfNode *node, const char *prefix)
level++;
TAILQ_FOREACH(child, &node->head, next) {
name[level] = strdup(child->name);
name[level] = SCStrdup(child->name);
if (prefix == NULL) {
printf("%s = %s\n", ConfPrintNameArray(name, level),
child->val);
@ -402,7 +402,7 @@ ConfNodeDump(ConfNode *node, const char *prefix)
ConfPrintNameArray(name, level), child->val);
}
ConfNodeDump(child, prefix);
free(name[level]);
SCFree(name[level]);
}
level--;
}
@ -651,8 +651,8 @@ ConfNodeLookupChildTest(void)
for (u = 0; u < sizeof(test_vals)/sizeof(test_vals[0]); u++) {
child = ConfNodeNew();
child->name = strdup(test_vals[u]);
child->val = strdup(test_vals[u]);
child->name = SCStrdup(test_vals[u]);
child->val = SCStrdup(test_vals[u]);
TAILQ_INSERT_TAIL(&parent->head, child, next);
}
@ -701,8 +701,8 @@ ConfNodeLookupChildValueTest(void)
for (u = 0; u < sizeof(test_vals)/sizeof(test_vals[0]); u++) {
child = ConfNodeNew();
child->name = strdup(test_vals[u]);
child->val = strdup(test_vals[u]);
child->name = SCStrdup(test_vals[u]);
child->val = SCStrdup(test_vals[u]);
TAILQ_INSERT_TAIL(&parent->head, child, next);
}

@ -26,7 +26,7 @@ static SCPerfOPIfaceContext *sc_perf_op_ctx = NULL;
*
* This function returns a string containing the log filename. It uses
* allocated memory simply to drop into the existing code a little better
* where a strdup was used. So as before, it is up to the caller to free
* where a SCStrdup was used. So as before, it is up to the caller to free
* the memory.
*
* \retval An allocated string containing the log filename on success or NULL on
@ -40,7 +40,7 @@ static char *SCPerfGetLogFilename(void)
if (ConfGet("default-log-dir", &log_dir) != 1)
log_dir = DEFAULT_LOG_DIR;
if ( (log_filename = malloc(PATH_MAX)) == NULL) {
if ( (log_filename = SCMalloc(PATH_MAX)) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
@ -48,7 +48,7 @@ static char *SCPerfGetLogFilename(void)
if (snprintf(log_filename, PATH_MAX, "%s/%s", log_dir,
SC_PERF_DEFAULT_LOG_FILENAME) < 0) {
SCLogError(SC_ERR_SPRINTF, "Sprintf Error");
free(log_filename);
SCFree(log_filename);
return NULL;
}
@ -62,7 +62,7 @@ static char *SCPerfGetLogFilename(void)
*/
static void SCPerfInitOPCtx(void)
{
if ( (sc_perf_op_ctx = malloc(sizeof(SCPerfOPIfaceContext))) == NULL) {
if ( (sc_perf_op_ctx = SCMalloc(sizeof(SCPerfOPIfaceContext))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
@ -79,11 +79,11 @@ static void SCPerfInitOPCtx(void)
"to using the standard output for output",
sc_perf_op_ctx->file);
free(sc_perf_op_ctx->file);
SCFree(sc_perf_op_ctx->file);
/* Let us use the standard output for output */
sc_perf_op_ctx->fp = stdout;
if ( (sc_perf_op_ctx->file = strdup("stdout")) == NULL) {
if ( (sc_perf_op_ctx->file = SCStrdup("stdout")) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
@ -112,19 +112,19 @@ static void SCPerfReleaseOPCtx()
fclose(sc_perf_op_ctx->fp);
if (sc_perf_op_ctx->file != NULL)
free(sc_perf_op_ctx->file);
SCFree(sc_perf_op_ctx->file);
if (sc_perf_op_ctx->pctmi != NULL) {
if (sc_perf_op_ctx->pctmi->tm_name != NULL)
free(sc_perf_op_ctx->pctmi->tm_name);
SCFree(sc_perf_op_ctx->pctmi->tm_name);
if (sc_perf_op_ctx->pctmi->head != NULL)
free(sc_perf_op_ctx->pctmi->head);
SCFree(sc_perf_op_ctx->pctmi->head);
free(sc_perf_op_ctx->pctmi);
SCFree(sc_perf_op_ctx->pctmi);
}
free(sc_perf_op_ctx);
SCFree(sc_perf_op_ctx);
}
return;
@ -325,7 +325,7 @@ static int SCPerfParseTBCounterInterval(SCPerfCounter *pc, char *interval)
pc->type_q->total_secs = ((pc->type_q->hours * 60 * 60) +
(pc->type_q->minutes * 60) + pc->type_q->seconds);
free(regex);
SCFree(regex);
return 0;
error:
@ -343,28 +343,28 @@ static void SCPerfReleaseCounter(SCPerfCounter *pc)
if (pc != NULL) {
if (pc->name != NULL) {
if (pc->name->cname != NULL)
free(pc->name->cname);
SCFree(pc->name->cname);
if (pc->name->tm_name != NULL)
free(pc->name->tm_name);
SCFree(pc->name->tm_name);
free(pc->name);
SCFree(pc->name);
}
if (pc->value != NULL) {
if (pc->value->cvalue != NULL)
free(pc->value->cvalue);
SCFree(pc->value->cvalue);
free(pc->value);
SCFree(pc->value);
}
if (pc->desc != NULL)
free(pc->desc);
SCFree(pc->desc);
if (pc->type_q != NULL)
free(pc->type_q);
SCFree(pc->type_q);
free(pc);
SCFree(pc);
}
return;
@ -424,33 +424,33 @@ static uint16_t SCPerfRegisterQualifiedCounter(char *cname, char *tm_name,
return(temp->id);
/* if we reach this point we don't have a counter registered by this cname */
if ( (pc = malloc(sizeof(SCPerfCounter))) == NULL) {
if ( (pc = SCMalloc(sizeof(SCPerfCounter))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
memset(pc, 0, sizeof(SCPerfCounter));
if ( (pc->name = malloc(sizeof(SCPerfCounterName))) == NULL) {
if ( (pc->name = SCMalloc(sizeof(SCPerfCounterName))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
free(pc);
SCFree(pc);
exit(EXIT_FAILURE);
}
memset(pc->name, 0, sizeof(SCPerfCounterName));
if ( (pc->value = malloc(sizeof(SCPerfCounterValue))) == NULL) {
if ( (pc->value = SCMalloc(sizeof(SCPerfCounterValue))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
free(pc->name);
free(pc);
SCFree(pc->name);
SCFree(pc);
exit(EXIT_FAILURE);
}
memset(pc->value, 0, sizeof(SCPerfCounterValue));
if ( (pc->name->cname = strdup(cname)) == NULL) {
if ( (pc->name->cname = SCStrdup(cname)) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
if ( (pc->name->tm_name = strdup(tm_name)) == NULL) {
if ( (pc->name->tm_name = SCStrdup(tm_name)) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
@ -459,12 +459,12 @@ static uint16_t SCPerfRegisterQualifiedCounter(char *cname, char *tm_name,
* PerfContext. Please note that the id start from 1, and not 0 */
pc->id = ++(pctx->curr_id);
if (desc != NULL && (pc->desc = strdup(desc)) == NULL) {
if (desc != NULL && (pc->desc = SCStrdup(desc)) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
if ( (pc->type_q = malloc(sizeof(SCPerfCounterTypeQ))) == NULL) {
if ( (pc->type_q = SCMalloc(sizeof(SCPerfCounterTypeQ))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
@ -495,7 +495,7 @@ static uint16_t SCPerfRegisterQualifiedCounter(char *cname, char *tm_name,
break;
}
if ( (pc->value->cvalue = malloc(pc->value->size)) == NULL) {
if ( (pc->value->cvalue = SCMalloc(pc->value->size)) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
@ -748,7 +748,7 @@ static int SCPerfOutputCounterFileIface()
pctmi = sc_perf_op_ctx->pctmi;
while (pctmi != NULL) {
if ( (pc_heads = malloc(pctmi->size * sizeof(SCPerfCounter *))) == NULL) {
if ( (pc_heads = SCMalloc(pctmi->size * sizeof(SCPerfCounter *))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
@ -812,7 +812,7 @@ static int SCPerfOutputCounterFileIface()
pctmi = pctmi->next;
free(pc_heads);
SCFree(pc_heads);
fflush(sc_perf_op_ctx->fp);
}
@ -1113,16 +1113,16 @@ int SCPerfAddToClubbedTMTable(char *tm_name, SCPerfContext *pctx)
/* get me the bugger who wrote this junk of a code :P */
if (pctmi == NULL) {
if ( (temp = malloc(sizeof(SCPerfClubTMInst))) == NULL) {
if ( (temp = SCMalloc(sizeof(SCPerfClubTMInst))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(0);
}
memset(temp, 0, sizeof(SCPerfClubTMInst));
temp->size++;
temp->head = realloc(temp->head, temp->size * sizeof(SCPerfContext **));
temp->head = SCRealloc(temp->head, temp->size * sizeof(SCPerfContext **));
temp->head[0] = pctx;
temp->tm_name = strdup(tm_name);
temp->tm_name = SCStrdup(tm_name);
if (prev == NULL)
sc_perf_op_ctx->pctmi = temp;
@ -1142,7 +1142,7 @@ int SCPerfAddToClubbedTMTable(char *tm_name, SCPerfContext *pctx)
return 1;
}
pctmi->head = realloc(pctmi->head,
pctmi->head = SCRealloc(pctmi->head,
(pctmi->size + 1) * sizeof(SCPerfContext **));
hpctx = pctmi->head;
@ -1193,13 +1193,13 @@ SCPerfCounterArray *SCPerfGetCounterArrayRange(uint16_t s_id, uint16_t e_id,
return NULL;
}
if ( (pca = malloc(sizeof(SCPerfCounterArray))) == NULL) {
if ( (pca = SCMalloc(sizeof(SCPerfCounterArray))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
memset(pca, 0, sizeof(SCPerfCounterArray));
if ( (pca->head = malloc(sizeof(SCPCAElem) * (e_id - s_id + 2))) == NULL) {
if ( (pca->head = SCMalloc(sizeof(SCPCAElem) * (e_id - s_id + 2))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
@ -1598,9 +1598,9 @@ void SCPerfReleasePCA(SCPerfCounterArray *pca)
{
if (pca != NULL) {
if (pca->head != NULL)
free(pca->head);
SCFree(pca->head);
free(pca);
SCFree(pca);
}
return;

@ -73,9 +73,11 @@ static int DecodeRawTest01 (void) {
DecodeRaw(&tv, &dtv, &p, raw_ip, p.pktlen, NULL);
if (p.ip6h == NULL) {
printf("expected a valid ipv6 header but it was NULL: ");
FlowShutdown();
return 1;
}
FlowShutdown();
return 0;
}
@ -108,6 +110,7 @@ static int DecodeRawTest02 (void) {
FlowInitConfig(FLOW_QUIET);
DecodeRaw(&tv, &dtv, &p, raw_ip, p.pktlen, NULL);
FlowShutdown();
if (p.ip4h == NULL) {
printf("expected a valid ipv4 header but it was NULL: ");
return 1;
@ -147,10 +150,12 @@ static int DecodeRawTest03 (void) {
DecodeRaw(&tv, &dtv, &p, raw_ip, p.pktlen, NULL);
if (DECODER_ISSET_EVENT(&p,IPRAW_INVALID_IPV)) {
FlowShutdown();
return 0;
} else {
printf("expected IPRAW_INVALID_IPV to be set but it wasn't: ");
}
FlowShutdown();
return 1;
}

@ -260,7 +260,7 @@ DefragFragReset(Frag *frag)
DefragContext *dc = frag->dc;
if (frag->pkt != NULL)
free(frag->pkt);
SCFree(frag->pkt);
memset(frag, 0, sizeof(*frag));
frag->dc = dc;
}
@ -274,7 +274,7 @@ DefragFragNew(void *arg)
DefragContext *dc = arg;
Frag *frag;
frag = calloc(1, sizeof(*frag));
frag = SCCalloc(1, sizeof(*frag));
frag->dc = dc;
return (void *)frag;
@ -287,7 +287,7 @@ static void
DefragFragFree(void *arg)
{
Frag *frag = arg;
free(frag);
SCFree(frag);
}
/**
@ -304,7 +304,7 @@ DefragTrackerFreeFrags(DefragTracker *tracker)
while ((frag = TAILQ_FIRST(&tracker->frags)) != NULL) {
TAILQ_REMOVE(&tracker->frags, frag, next);
/* Don't free the frag, just give it back to its pool. */
/* Don't SCFree the frag, just give it back to its pool. */
DefragFragReset(frag);
PoolReturn(frag->dc->frag_pool, frag);
}
@ -343,11 +343,11 @@ DefragTrackerNew(void *arg)
DefragContext *dc = arg;
DefragTracker *tracker;
tracker = calloc(1, sizeof(*tracker));
tracker = SCCalloc(1, sizeof(*tracker));
if (tracker == NULL)
return NULL;
if (SCMutexInit(&tracker->lock, NULL) != 0) {
free(tracker);
SCFree(tracker);
return NULL;
}
tracker->dc = dc;
@ -367,7 +367,7 @@ DefragTrackerFree(void *arg)
SCMutexDestroy(&tracker->lock);
DefragTrackerFreeFrags(tracker);
free(tracker);
SCFree(tracker);
}
/**
@ -381,7 +381,7 @@ DefragContextNew(void)
{
DefragContext *dc;
dc = calloc(1, sizeof(*dc));
dc = SCCalloc(1, sizeof(*dc));
if (dc == NULL)
return NULL;
@ -471,10 +471,9 @@ DefragContextDestroy(DefragContext *dc)
HashListTableFree(dc->frag_table);
PoolFree(dc->frag_pool);
PoolFree(dc->tracker_pool);
free(dc);
SCFree(dc);
}
/**
* Attempt to re-assemble a packet.
*
@ -517,7 +516,7 @@ Defrag4Reassemble(ThreadVars *tv, DefragContext *dc, DefragTracker *tracker,
}
/* Allocate a Packet for the reassembled packet. On failure we
* free all the resources held by this tracker. */
* SCFree all the resources held by this tracker. */
if (tv == NULL) {
/* Unit test. */
rp = SetupPkt();
@ -635,7 +634,7 @@ Defrag6Reassemble(ThreadVars *tv, DefragContext *dc, DefragTracker *tracker,
}
/* Allocate a Packet for the reassembled packet. On failure we
* free all the resources held by this tracker. */
* SCFree all the resources held by this tracker. */
if (tv == NULL) {
/* Unit test. */
rp = SetupPkt();
@ -888,7 +887,7 @@ insert:
if (new == NULL) {
goto done;
}
new->pkt = malloc(p->pktlen);
new->pkt = SCMalloc(p->pktlen);
if (new->pkt == NULL) {
SCMutexLock(&dc->frag_pool_lock);
PoolReturn(dc->frag_pool, new);
@ -1143,7 +1142,7 @@ BuildTestPacket(uint16_t id, uint16_t off, int mf, const char content,
int hlen = 20;
int ttl = 64;
p = calloc(1, sizeof(*p));
p = SCCalloc(1, sizeof(*p));
if (p == NULL)
return NULL;
gettimeofday(&p->ts, NULL);
@ -1191,7 +1190,7 @@ BuildTestPacket(uint16_t id, uint16_t off, int mf, const char content,
return p;
error:
if (p != NULL)
free(p);
SCFree(p);
return NULL;
}
@ -1201,7 +1200,7 @@ IPV6BuildTestPacket(uint32_t id, uint16_t off, int mf, const char content,
{
Packet *p = NULL;
p = calloc(1, sizeof(*p));
p = SCCalloc(1, sizeof(*p));
if (p == NULL)
return NULL;
gettimeofday(&p->ts, NULL);
@ -1249,7 +1248,7 @@ IPV6BuildTestPacket(uint32_t id, uint16_t off, int mf, const char content,
error:
fprintf(stderr, "Error building test packet.\n");
if (p != NULL)
free(p);
SCFree(p);
return NULL;
}
@ -1321,13 +1320,13 @@ end:
if (dc != NULL)
DefragContextDestroy(dc);
if (p1 != NULL)
free(p1);
SCFree(p1);
if (p2 != NULL)
free(p2);
SCFree(p2);
if (p3 != NULL)
free(p3);
SCFree(p3);
if (reassembled != NULL)
free(reassembled);
SCFree(reassembled);
DefragDestroy();
return ret;
@ -1400,13 +1399,13 @@ end:
if (dc != NULL)
DefragContextDestroy(dc);
if (p1 != NULL)
free(p1);
SCFree(p1);
if (p2 != NULL)
free(p2);
SCFree(p2);
if (p3 != NULL)
free(p3);
SCFree(p3);
if (reassembled != NULL)
free(reassembled);
SCFree(reassembled);
DefragDestroy();
return ret;
@ -1476,13 +1475,13 @@ end:
if (dc != NULL)
DefragContextDestroy(dc);
if (p1 != NULL)
free(p1);
SCFree(p1);
if (p2 != NULL)
free(p2);
SCFree(p2);
if (p3 != NULL)
free(p3);
SCFree(p3);
if (reassembled != NULL)
free(reassembled);
SCFree(reassembled);
DefragDestroy();
return ret;
@ -1545,13 +1544,13 @@ end:
if (dc != NULL)
DefragContextDestroy(dc);
if (p1 != NULL)
free(p1);
SCFree(p1);
if (p2 != NULL)
free(p2);
SCFree(p2);
if (p3 != NULL)
free(p3);
SCFree(p3);
if (reassembled != NULL)
free(reassembled);
SCFree(reassembled);
DefragDestroy();
return ret;
@ -1642,7 +1641,7 @@ DefragDoSturgesNovakTest(int policy, u_char *expected, size_t expected_len)
for (i = 0; i < 16; i++) {
Packet *tp = Defrag(NULL, NULL, dc, packets[i]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
}
@ -1659,7 +1658,7 @@ DefragDoSturgesNovakTest(int policy, u_char *expected, size_t expected_len)
if (memcmp(reassembled->pkt + 20, expected, expected_len) != 0)
goto end;
free(reassembled);
SCFree(reassembled);
/* Make sure the tracker was released back to the pool. */
if (dc->tracker_pool->outstanding != 0)
@ -1674,7 +1673,7 @@ end:
if (dc != NULL)
DefragContextDestroy(dc);
for (i = 0; i < 17; i++) {
free(packets[i]);
SCFree(packets[i]);
}
DefragDestroy();
return ret;
@ -1765,82 +1764,82 @@ IPV6DefragDoSturgesNovakTest(int policy, u_char *expected, size_t expected_len)
Packet *tp;
tp = Defrag(NULL, NULL, dc, packets[0]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
tp = Defrag(NULL, NULL, dc, packets[1]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
tp = Defrag(NULL, NULL, dc, packets[2]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
tp = Defrag(NULL, NULL, dc, packets[3]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
tp = Defrag(NULL, NULL, dc, packets[4]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
tp = Defrag(NULL, NULL, dc, packets[5]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
tp = Defrag(NULL, NULL, dc, packets[6]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
tp = Defrag(NULL, NULL, dc, packets[7]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
tp = Defrag(NULL, NULL, dc, packets[8]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
tp = Defrag(NULL, NULL, dc, packets[9]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
tp = Defrag(NULL, NULL, dc, packets[10]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
tp = Defrag(NULL, NULL, dc, packets[11]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
tp = Defrag(NULL, NULL, dc, packets[12]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
tp = Defrag(NULL, NULL, dc, packets[13]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
tp = Defrag(NULL, NULL, dc, packets[14]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
tp = Defrag(NULL, NULL, dc, packets[15]);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
@ -1854,7 +1853,7 @@ IPV6DefragDoSturgesNovakTest(int policy, u_char *expected, size_t expected_len)
if (IPV6_GET_PLEN(reassembled) != 192)
goto end;
free(reassembled);
SCFree(reassembled);
/* Make sure the tracker was released back to the pool. */
if (dc->tracker_pool->outstanding != 0)
@ -1869,7 +1868,7 @@ end:
if (dc != NULL)
DefragContextDestroy(dc);
for (i = 0; i < 17; i++) {
free(packets[i]);
SCFree(packets[i]);
}
DefragDestroy();
return ret;
@ -2312,10 +2311,10 @@ DefragTimeoutTest(void)
Packet *tp = Defrag(NULL, NULL, dc, p);
free(p);
SCFree(p);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
}
@ -2329,10 +2328,10 @@ DefragTimeoutTest(void)
p->ts.tv_sec += dc->timeout;
Packet *tp = Defrag(NULL, NULL, dc, p);
free(p);
SCFree(p);
if (tp != NULL) {
free(tp);
SCFree(tp);
goto end;
}
@ -2402,7 +2401,7 @@ end:
if (dc != NULL)
DefragContextDestroy(dc);
if (p != NULL)
free(p);
SCFree(p);
DefragDestroy();
return ret;
@ -2441,7 +2440,7 @@ end:
if (dc != NULL)
DefragContextDestroy(dc);
if (p != NULL)
free(p);
SCFree(p);
DefragDestroy();
return ret;

@ -83,7 +83,7 @@ static int DetectAckSetup(DetectEngineCtx *de_ctx, Signature *s,
//printf("DetectAckSetup: \'%s\'\n", optstr);
data = malloc(sizeof(DetectAckData));
data = SCMalloc(sizeof(DetectAckData));
if (data == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
@ -106,7 +106,7 @@ static int DetectAckSetup(DetectEngineCtx *de_ctx, Signature *s,
return 0;
error:
if (data) free(data);
if (data) SCFree(data);
return -1;
}
@ -120,7 +120,7 @@ error:
static void DetectAckFree(void *ptr)
{
DetectAckData *data = (DetectAckData *)ptr;
free(data);
SCFree(data);
}

@ -247,7 +247,7 @@ DetectBytejumpData *DetectBytejumpParse(char *optstr)
}
/* Initialize the data */
data = malloc(sizeof(DetectBytejumpData));
data = SCMalloc(sizeof(DetectBytejumpData));
if (data == NULL) {
SCLogError(SC_ERR_MEM_ALLOC,"malloc failed %s", strerror(errno));
goto error;
@ -351,14 +351,14 @@ DetectBytejumpData *DetectBytejumpParse(char *optstr)
for (i = 0; i < numargs; i++){
if (i == 1) continue; /* args[1] is part of args[0] */
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
return data;
error:
for (i = 0; i < numargs; i++){
if (i == 1) continue; /* args[1] is part of args[0] */
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
if (data != NULL) DetectBytejumpFree(data);
return NULL;
@ -388,7 +388,7 @@ int DetectBytejumpSetup(DetectEngineCtx *de_ctx, Signature *s,
error:
if (data != NULL) DetectBytejumpFree(data);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -400,7 +400,7 @@ error:
void DetectBytejumpFree(void *ptr)
{
DetectBytejumpData *data = (DetectBytejumpData *)ptr;
free(data);
SCFree(data);
}

@ -226,9 +226,9 @@ DetectBytetestData *DetectBytetestParse(char *optstr)
}
/* Initialize the data */
data = malloc(sizeof(DetectBytetestData));
data = SCMalloc(sizeof(DetectBytetestData));
if (data == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
SCLogError(SC_ERR_MEM_ALLOC, "SCMalloc failed");
goto error;
}
data->base = DETECT_BYTETEST_BASE_UNSET;
@ -335,13 +335,13 @@ DetectBytetestData *DetectBytetestParse(char *optstr)
data->nbytes = (uint8_t)nbytes;
for (i = 0; i < (ret - 1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
return data;
error:
for (i = 0; i < (ret - 1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
if (data != NULL) DetectBytetestFree(data);
return NULL;
@ -371,7 +371,7 @@ int DetectBytetestSetup(DetectEngineCtx *de_ctx, Signature *s,
error:
if (data != NULL) DetectBytetestFree(data);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -383,7 +383,7 @@ error:
void DetectBytetestFree(void *ptr)
{
DetectBytetestData *data = (DetectBytetestData *)ptr;
free(data);
SCFree(data);
}

@ -74,7 +74,7 @@ static inline const char *DetectClasstypeParseRawString(char *rawstr)
/* get rid of the double quotes if present */
if (rawstr[0] == '\"' && rawstr[strlen(rawstr) - 1] == '\"') {
if ( (rawstr = strdup(rawstr + 1)) == NULL) {
if ( (rawstr = SCStrdup(rawstr + 1)) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto end;
}

@ -587,19 +587,19 @@ DetectContentData *DetectContentParse (char *contentstr)
uint16_t pos = 0;
uint16_t slen = 0;
if ((temp = strdup(contentstr)) == NULL) {
if ((temp = SCStrdup(contentstr)) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
}
if (strlen(temp) == 0) {
free(temp);
SCFree(temp);
return NULL;
}
cd = malloc(sizeof(DetectContentData));
cd = SCMalloc(sizeof(DetectContentData));
if (cd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
SCLogError(SC_ERR_MEM_ALLOC, "SCMalloc failed");
goto error;
}
memset(cd, 0, sizeof(DetectContentData));
@ -611,22 +611,22 @@ DetectContentData *DetectContentParse (char *contentstr)
};
if (temp[pos] == '!') {
free(temp);
if ((temp = strdup(contentstr + pos + 1)) == NULL)
SCFree(temp);
if ((temp = SCStrdup(contentstr + pos + 1)) == NULL)
goto error;
cd->negated = 1;
}
if (temp[pos] == '\"' && temp[strlen(temp)-1] == '\"') {
if ((str = strdup(temp + pos + 1)) == NULL)
if ((str = SCStrdup(temp + pos + 1)) == NULL)
goto error;
str[strlen(temp) - pos - 2] = '\0';
} else {
if ((str = strdup(temp + pos)) == NULL)
if ((str = SCStrdup(temp + pos)) == NULL)
goto error;
}
free(temp);
SCFree(temp);
temp = NULL;
/*This was submitted as a patch for bug #11. But this impliments incorrect behavior as !
@ -638,10 +638,10 @@ DetectContentData *DetectContentParse (char *contentstr)
// goto error;
// } else {
// temp = str;
// if ( (str = strdup(temp + 1)) == NULL)
// if ( (str = SCStrdup(temp + 1)) == NULL)
// goto error;
// cd->negated = 1;
// free(temp);
// SCFree(temp);
// temp = NULL;
// }
//}
@ -730,7 +730,7 @@ DetectContentData *DetectContentParse (char *contentstr)
}
}
cd->content = malloc(len);
cd->content = SCMalloc(len);
if (cd->content == NULL)
goto error;
@ -742,16 +742,16 @@ DetectContentData *DetectContentParse (char *contentstr)
cd->distance = 0;
cd->flags = 0;
free(str);
SCFree(str);
return cd;
error:
free(str);
free(temp);
SCFree(str);
SCFree(temp);
if (cd != NULL) {
if (cd->content != NULL)
free(cd->content);
free(cd);
SCFree(cd->content);
SCFree(cd);
}
return NULL;
}
@ -766,7 +766,7 @@ void DetectContentPrint(DetectContentData *cd)
SCLogDebug("DetectContentData \"cd\" is NULL");
return;
}
char *tmpstr=malloc(sizeof(char) * cd->content_len + 1);
char *tmpstr=SCMalloc(sizeof(char) * cd->content_len + 1);
if (tmpstr != NULL) {
for (i = 0; i < cd->content_len; i++) {
@ -777,7 +777,7 @@ void DetectContentPrint(DetectContentData *cd)
}
tmpstr[i] = '\0';
SCLogDebug("Content: \"%s\"", tmpstr);
free(tmpstr);
SCFree(tmpstr);
} else {
SCLogDebug("Content: ");
for (i = 0; i < cd->content_len; i++)
@ -818,9 +818,9 @@ DetectContentData *DetectContentSplitChunk(DetectContentData *origcd,
uint8_t remaining_content_len,
uint8_t index, int32_t mpl)
{
DetectContentData *cd = malloc(sizeof(DetectContentData));
DetectContentData *cd = SCMalloc(sizeof(DetectContentData));
if (cd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "DetectContentData malloc failed");
SCLogError(SC_ERR_MEM_ALLOC, "DetectContentData SCMalloc failed");
goto error;
}
memset(cd,0,sizeof(DetectContentData));
@ -834,9 +834,9 @@ DetectContentData *DetectContentSplitChunk(DetectContentData *origcd,
if (cd->content_len <= 0)
goto error;
cd->content = (uint8_t*) malloc(sizeof(uint8_t) * cd->content_len);
cd->content = (uint8_t*) SCMalloc(sizeof(uint8_t) * cd->content_len);
if (cd->content == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "string for content malloc failed");
SCLogError(SC_ERR_MEM_ALLOC, "string for content SCMalloc failed");
goto error;
}
@ -847,8 +847,8 @@ DetectContentData *DetectContentSplitChunk(DetectContentData *origcd,
error:
if (cd != NULL) {
if (cd->content != NULL)
free(cd->content);
free(cd);
SCFree(cd->content);
SCFree(cd);
}
return NULL;
}
@ -1519,12 +1519,12 @@ int DetectContentSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
error:
if (cd != NULL) DetectContentFree(cd);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
/**
* \brief this function will free memory associated with DetectContentData
* \brief this function will SCFree memory associated with DetectContentData
*
* \param cd pointer to DetectCotentData
*/
@ -1535,9 +1535,9 @@ void DetectContentFree(void *ptr) {
return;
if (cd->content != NULL)
free(cd->content);
SCFree(cd->content);
free(cd);
SCFree(cd);
}
#ifdef UNITTESTS /* UNITTESTS */
@ -2757,6 +2757,13 @@ static int SigTestPositiveTestContent(char *rule, uint8_t *buf)
//PatternMatchDestroy(mpm_ctx);
DetectEngineCtxFree(de_ctx);
end:
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
//PatternMatchDestroy(mpm_ctx);
DetectEngineCtxFree(de_ctx);
return result;
}
@ -2805,6 +2812,12 @@ static int SigTestNegativeTestContent(char *rule, uint8_t *buf)
//PatternMatchDestroy(mpm_ctx);
DetectEngineCtxFree(de_ctx);
end:
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
//PatternMatchDestroy(mpm_ctx);
DetectEngineCtxFree(de_ctx);
return result;
}

@ -163,19 +163,19 @@ static int DetectCsumParseArg(const char *key, DetectCsumData *cd)
char *str;
if (key[0] == '\"' && key[strlen(key) - 1] == '\"') {
str = strdup(key + 1);
str = SCStrdup(key + 1);
str[strlen(key) - 2] = '\0';
} else
str = strdup(key);
str = SCStrdup(key);
if (strcasecmp(str, DETECT_CSUM_VALID) == 0 ||
strcasecmp(str, DETECT_CSUM_INVALID) == 0) {
cd->valid = (strcasecmp(key, DETECT_CSUM_VALID) == 0);
free(str);
SCFree(str);
return 1;
}
free(str);
SCFree(str);
return 0;
}
@ -242,7 +242,7 @@ int DetectIPV4CsumSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
sm->type = DETECT_IPV4_CSUM;
if ( (cd = malloc(sizeof(DetectCsumData))) == NULL) {
if ( (cd = SCMalloc(sizeof(DetectCsumData))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
}
@ -259,7 +259,7 @@ int DetectIPV4CsumSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
error:
if (cd != NULL) DetectIPV4CsumFree(cd);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -269,7 +269,7 @@ void DetectIPV4CsumFree(void *ptr)
DetectCsumData *cd = (DetectCsumData *)ptr;
if (cd != NULL)
free(cd);
SCFree(cd);
return;
}
@ -339,7 +339,7 @@ int DetectTCPV4CsumSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
sm->type = DETECT_TCPV4_CSUM;
if ( (cd = malloc(sizeof(DetectCsumData))) == NULL) {
if ( (cd = SCMalloc(sizeof(DetectCsumData))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
}
@ -356,7 +356,7 @@ int DetectTCPV4CsumSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
error:
if (cd != NULL) DetectTCPV4CsumFree(cd);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -366,7 +366,7 @@ void DetectTCPV4CsumFree(void *ptr)
DetectCsumData *cd = (DetectCsumData *)ptr;
if (cd != NULL)
free(cd);
SCFree(cd);
return;
}
@ -436,7 +436,7 @@ int DetectTCPV6CsumSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
sm->type = DETECT_TCPV6_CSUM;
if ( (cd = malloc(sizeof(DetectCsumData))) == NULL) {
if ( (cd = SCMalloc(sizeof(DetectCsumData))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
}
@ -453,7 +453,7 @@ int DetectTCPV6CsumSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
error:
if (cd != NULL) DetectTCPV6CsumFree(cd);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -463,7 +463,7 @@ void DetectTCPV6CsumFree(void *ptr)
DetectCsumData *cd = (DetectCsumData *)ptr;
if (cd != NULL)
free(cd);
SCFree(cd);
return;
}
@ -533,7 +533,7 @@ int DetectUDPV4CsumSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
sm->type = DETECT_UDPV4_CSUM;
if ( (cd = malloc(sizeof(DetectCsumData))) == NULL) {
if ( (cd = SCMalloc(sizeof(DetectCsumData))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
}
@ -550,7 +550,7 @@ int DetectUDPV4CsumSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
error:
if (cd != NULL) DetectUDPV4CsumFree(cd);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -560,7 +560,7 @@ void DetectUDPV4CsumFree(void *ptr)
DetectCsumData *cd = (DetectCsumData *)ptr;
if (cd != NULL)
free(cd);
SCFree(cd);
return;
}
@ -630,7 +630,7 @@ int DetectUDPV6CsumSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
sm->type = DETECT_UDPV6_CSUM;
if ( (cd = malloc(sizeof(DetectCsumData))) == NULL) {
if ( (cd = SCMalloc(sizeof(DetectCsumData))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
}
@ -647,7 +647,7 @@ int DetectUDPV6CsumSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
error:
if (cd != NULL) DetectUDPV6CsumFree(cd);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -657,7 +657,7 @@ void DetectUDPV6CsumFree(void *ptr)
DetectCsumData *cd = (DetectCsumData *)ptr;
if (cd != NULL)
free(cd);
SCFree(cd);
return;
}
@ -726,7 +726,7 @@ int DetectICMPV4CsumSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
sm->type = DETECT_ICMPV4_CSUM;
if ( (cd = malloc(sizeof(DetectCsumData))) == NULL) {
if ( (cd = SCMalloc(sizeof(DetectCsumData))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
}
@ -743,7 +743,7 @@ int DetectICMPV4CsumSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
error:
if (cd != NULL) DetectICMPV4CsumFree(cd);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -753,7 +753,7 @@ void DetectICMPV4CsumFree(void *ptr)
DetectCsumData *cd = (DetectCsumData *)ptr;
if (cd != NULL)
free(cd);
SCFree(cd);
return;
}
@ -822,7 +822,7 @@ int DetectICMPV6CsumSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
sm->type = DETECT_ICMPV6_CSUM;
if ( (cd = malloc(sizeof(DetectCsumData))) == NULL) {
if ( (cd = SCMalloc(sizeof(DetectCsumData))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
}
@ -839,7 +839,7 @@ int DetectICMPV6CsumSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
error:
if (cd != NULL) DetectICMPV6CsumFree(cd);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -849,7 +849,7 @@ void DetectICMPV6CsumFree(void *ptr)
DetectCsumData *cd = (DetectCsumData *)ptr;
if (cd != NULL)
free(cd);
SCFree(cd);
return;
}
@ -876,7 +876,7 @@ int DetectCsumIPV4ValidArgsTestParse01(void)
DetectIPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -900,7 +900,7 @@ int DetectCsumIPV4InValidArgsTestParse02(void)
DetectIPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -925,7 +925,7 @@ int DetectCsumIPV4ValidArgsTestParse03(void)
DetectIPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
s.match = NULL;
@ -939,7 +939,7 @@ int DetectCsumIPV4ValidArgsTestParse03(void)
DetectIPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -963,7 +963,7 @@ int DetectCsumICMPV4ValidArgsTestParse01(void)
DetectICMPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -986,7 +986,7 @@ int DetectCsumICMPV4InValidArgsTestParse02(void) {
DetectICMPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1010,7 +1010,7 @@ int DetectCsumICMPV4ValidArgsTestParse03(void) {
DetectICMPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
s.match = NULL;
@ -1024,7 +1024,7 @@ int DetectCsumICMPV4ValidArgsTestParse03(void) {
DetectICMPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1048,7 +1048,7 @@ int DetectCsumTCPV4ValidArgsTestParse01(void)
DetectTCPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1071,7 +1071,7 @@ int DetectCsumTCPV4InValidArgsTestParse02(void) {
DetectTCPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1095,7 +1095,7 @@ int DetectCsumTCPV4ValidArgsTestParse03(void) {
DetectTCPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
s.match = NULL;
@ -1109,7 +1109,7 @@ int DetectCsumTCPV4ValidArgsTestParse03(void) {
DetectTCPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1133,7 +1133,7 @@ int DetectCsumUDPV4ValidArgsTestParse01(void)
DetectUDPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1156,7 +1156,7 @@ int DetectCsumUDPV4InValidArgsTestParse02(void) {
DetectUDPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1180,7 +1180,7 @@ int DetectCsumUDPV4ValidArgsTestParse03(void) {
DetectUDPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
s.match = NULL;
@ -1194,7 +1194,7 @@ int DetectCsumUDPV4ValidArgsTestParse03(void) {
DetectUDPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1218,7 +1218,7 @@ int DetectCsumTCPV6ValidArgsTestParse01(void)
DetectTCPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1241,7 +1241,7 @@ int DetectCsumTCPV6InValidArgsTestParse02(void) {
DetectTCPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1265,7 +1265,7 @@ int DetectCsumTCPV6ValidArgsTestParse03(void) {
DetectTCPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
s.match = NULL;
@ -1279,7 +1279,7 @@ int DetectCsumTCPV6ValidArgsTestParse03(void) {
DetectTCPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1303,7 +1303,7 @@ int DetectCsumUDPV6ValidArgsTestParse01(void)
DetectUDPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1326,7 +1326,7 @@ int DetectCsumUDPV6InValidArgsTestParse02(void) {
DetectUDPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1350,7 +1350,7 @@ int DetectCsumUDPV6ValidArgsTestParse03(void) {
DetectUDPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
s.match = NULL;
@ -1364,7 +1364,7 @@ int DetectCsumUDPV6ValidArgsTestParse03(void) {
DetectUDPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1388,7 +1388,7 @@ int DetectCsumICMPV6ValidArgsTestParse01(void)
DetectICMPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1411,7 +1411,7 @@ int DetectCsumICMPV6InValidArgsTestParse02(void) {
DetectICMPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;
@ -1435,7 +1435,7 @@ int DetectCsumICMPV6ValidArgsTestParse03(void) {
DetectICMPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
s.match = NULL;
@ -1449,7 +1449,7 @@ int DetectCsumICMPV6ValidArgsTestParse03(void) {
DetectICMPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
free(temp);
SCFree(temp);
}
return result;

@ -98,7 +98,7 @@ static inline DetectDceIfaceData *DetectDceIfaceArgParse(const char *arg)
goto error;
}
if ( (did = malloc(sizeof(DetectDceIfaceData))) == NULL) {
if ( (did = SCMalloc(sizeof(DetectDceIfaceData))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
}
@ -200,7 +200,7 @@ static inline DetectDceIfaceData *DetectDceIfaceArgParse(const char *arg)
error:
if (did != NULL)
free(did);
SCFree(did);
return NULL;
}
@ -342,13 +342,13 @@ int DetectDceIfaceSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
error:
DetectDceIfaceFree(did);
if (sm != NULL)
free(sm);
SCFree(sm);
return -1;
}
void DetectDceIfaceFree(void *ptr)
{
free(ptr);
SCFree(ptr);
return;
}

@ -79,7 +79,7 @@ static inline DetectDceOpnumRange *DetectDceOpnumAllocDetectDceOpnumRange(void)
{
DetectDceOpnumRange *dor = NULL;
if ( (dor = malloc(sizeof(DetectDceOpnumRange))) == NULL) {
if ( (dor = SCMalloc(sizeof(DetectDceOpnumRange))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
@ -129,13 +129,13 @@ static inline DetectDceOpnumData *DetectDceOpnumArgParse(const char *arg)
goto error;
}
if ( (dod = malloc(sizeof(DetectDceOpnumData))) == NULL) {
if ( (dod = SCMalloc(sizeof(DetectDceOpnumData))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
}
memset(dod, 0, sizeof(DetectDceOpnumData));
if ( (dup_str = strdup(pcre_sub_str)) == NULL) {
if ( (dup_str = SCStrdup(pcre_sub_str)) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
}
@ -207,13 +207,13 @@ static inline DetectDceOpnumData *DetectDceOpnumArgParse(const char *arg)
}
if (dup_str_head != NULL)
free(dup_str_head);
SCFree(dup_str_head);
return dod;
error:
if (dup_str_head != NULL)
free(dup_str_head);
SCFree(dup_str_head);
DetectDceOpnumFree(dod);
return NULL;
}
@ -299,7 +299,7 @@ int DetectDceOpnumSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
error:
DetectDceOpnumFree(dod);
if (sm != NULL)
free(sm);
SCFree(sm);
return -1;
}
@ -315,9 +315,9 @@ void DetectDceOpnumFree(void *ptr)
while (dor != NULL) {
dor_temp = dor;
dor = dor->next;
free(dor_temp);
SCFree(dor_temp);
}
free(dod);
SCFree(dod);
}
return;

@ -105,7 +105,7 @@ int DetectDceStubDataSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
error:
if (sm != NULL)
free(sm);
SCFree(sm);
return -1;
}

@ -125,7 +125,7 @@ DetectDecodeEventData *DetectDecodeEventParse (char *rawstr)
if(found == 0)
goto error;
de = malloc(sizeof(DetectDecodeEventData));
de = SCMalloc(sizeof(DetectDecodeEventData));
if (de == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Malloc failed");
goto error;
@ -135,7 +135,7 @@ DetectDecodeEventData *DetectDecodeEventParse (char *rawstr)
return de;
error:
if (de) free(de);
if (de) SCFree(de);
return NULL;
}
@ -170,8 +170,8 @@ int DetectDecodeEventSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
return 0;
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return -1;
}
@ -181,7 +181,7 @@ error:
* \param de pointer to DetectDecodeEventData
*/
void DetectDecodeEventFree(DetectDecodeEventData *de) {
if(de) free(de);
if(de) SCFree(de);
}
/*
@ -295,8 +295,8 @@ int DecodeEventTestParse06 (void) {
return 1;
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 0;
}
#endif /* UNITTESTS */

@ -29,7 +29,7 @@ int DetectDepthSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *
/* strip "'s */
if (depthstr[0] == '\"' && depthstr[strlen(depthstr)-1] == '\"') {
str = strdup(depthstr+1);
str = SCStrdup(depthstr+1);
str[strlen(depthstr)-2] = '\0';
dubbed = 1;
}
@ -39,14 +39,14 @@ int DetectDepthSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *
SigMatch *pm = DetectContentFindPrevApplicableSM(m);
if (pm == NULL) {
SCLogError(SC_ERR_DEPTH_MISSING_CONTENT, "depth needs a preceeding content option");
if (dubbed) free(str);
if (dubbed) SCFree(str);
return -1;
}
DetectContentData *cd = (DetectContentData *)pm->ctx;
if (cd == NULL) {
SCLogError(SC_ERR_INVALID_ARGUMENT, "invalid argument");
if (dubbed) free(str);
if (dubbed) SCFree(str);
return -1;
}
@ -64,7 +64,7 @@ int DetectDepthSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *
//DetectContentPrint(cd);
//printf("DetectDepthSetup: set depth %" PRIu32 " for previous content\n", cd->depth);
if (dubbed) free(str);
if (dubbed) SCFree(str);
return 0;
}

@ -30,7 +30,7 @@ int DetectDistanceSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, cha
/* strip "'s */
if (distancestr[0] == '\"' && distancestr[strlen(distancestr)-1] == '\"') {
str = strdup(distancestr+1);
str = SCStrdup(distancestr+1);
str[strlen(distancestr)-2] = '\0';
dubbed = 1;
}
@ -46,14 +46,14 @@ int DetectDistanceSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, cha
pm = DetectContentFindPrevApplicableSM(m);
if (pm == NULL || DetectContentHasPrevSMPattern(pm) == NULL) {
SCLogError(SC_ERR_DISTANCE_MISSING_CONTENT, "distance needs two preceeding content options");
if (dubbed) free(str);
if (dubbed) SCFree(str);
return -1;
}
DetectContentData *cd = (DetectContentData *)pm->ctx;
if (cd == NULL) {
SCLogError(SC_ERR_RULE_KEYWORD_UNKNOWN, "Unknown previous keyword!");
if (dubbed) free(str);
if (dubbed) SCFree(str);
return -1;
}
@ -88,10 +88,10 @@ int DetectDistanceSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, cha
goto error;
}
if (dubbed) free(str);
if (dubbed) SCFree(str);
return 0;
error:
if (dubbed) free(str);
if (dubbed) SCFree(str);
return -1;
}

@ -151,7 +151,7 @@ DetectDsizeData *DetectDsizeParse (char *rawstr)
value2 = (char *)str_ptr;
SCLogDebug("value2 \"%s\"", value2);
dd = malloc(sizeof(DetectDsizeData));
dd = SCMalloc(sizeof(DetectDsizeData));
if (dd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
@ -197,18 +197,18 @@ DetectDsizeData *DetectDsizeParse (char *rawstr)
SCLogDebug("dsize parsed succesfully dsize: %"PRIu16" dsize2: %"PRIu16"",dd->dsize,dd->dsize2);
free(value1);
free(value2);
free(mode);
free(range);
SCFree(value1);
SCFree(value2);
SCFree(mode);
SCFree(range);
return dd;
error:
if (dd) free(dd);
if (value1) free(value1);
if (value2) free(value2);
if (mode) free(mode);
if (range) free(range);
if (dd) SCFree(dd);
if (value1) SCFree(value1);
if (value2) SCFree(value2);
if (mode) SCFree(mode);
if (range) SCFree(range);
return NULL;
}
@ -255,8 +255,8 @@ int DetectDsizeSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *
return 0;
error:
if (dd) free(dd);
if (sm) free(sm);
if (dd) SCFree(dd);
if (sm) SCFree(sm);
return -1;
}
@ -268,7 +268,7 @@ error:
*/
void DetectDsizeFree(void *de_ptr) {
DetectDsizeData *dd = (DetectDsizeData *)de_ptr;
if(dd) free(dd);
if(dd) SCFree(dd);
}
/*

@ -1054,6 +1054,8 @@ static int DetectAddressIPv4IsCompleteIPSpace02(void)
a->ip2[0] = in.s_addr;
result &= (DetectAddressIsCompleteIPSpaceIPv4(a) == 0);
DetectAddressFree(a);
if ( (a = DetectAddressInit()) == NULL)
goto error;

@ -63,7 +63,7 @@ static uint32_t detect_address_group_head_free_cnt = 0;
*/
DetectAddress *DetectAddressInit(void)
{
DetectAddress *ag = malloc(sizeof(DetectAddress));
DetectAddress *ag = SCMalloc(sizeof(DetectAddress));
if (ag == NULL)
return NULL;
memset(ag, 0, sizeof(DetectAddress));
@ -116,7 +116,7 @@ void DetectAddressFree(DetectAddress *ag)
detect_address_group_memory -= sizeof(DetectAddress);
detect_address_group_free_cnt++;
#endif
free(ag);
SCFree(ag);
return;
}
@ -600,7 +600,7 @@ static void DetectAddressParseIPv6CIDR(int cidr, struct in6_addr *in6)
*/
static int DetectAddressParseString(DetectAddress *dd, char *str)
{
char *ipdup = strdup(str);
char *ipdup = SCStrdup(str);
char *ip = NULL;
char *ip2 = NULL;
char *mask = NULL;
@ -611,7 +611,7 @@ static int DetectAddressParseString(DetectAddress *dd, char *str)
/* first handle 'any' */
if (strcasecmp(str, "any") == 0) {
dd->flags |= ADDRESS_FLAG_ANY;
free(ipdup);
SCFree(ipdup);
SCLogDebug("address is \'any\'");
@ -756,7 +756,7 @@ static int DetectAddressParseString(DetectAddress *dd, char *str)
}
free(ipdup);
SCFree(ipdup);
BUG_ON(dd->family == 0);
@ -764,7 +764,7 @@ static int DetectAddressParseString(DetectAddress *dd, char *str)
error:
if (ipdup)
free(ipdup);
SCFree(ipdup);
return -1;
}
@ -963,7 +963,7 @@ int DetectAddressParse2(DetectAddressHead *gh, DetectAddressHead *ghn, char *s,
goto error;
temp_rule_var_address = rule_var_address;
if ((negate + n_set) % 2) {
temp_rule_var_address = malloc(strlen(rule_var_address) + 3);
temp_rule_var_address = SCMalloc(strlen(rule_var_address) + 3);
if (temp_rule_var_address == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
@ -976,7 +976,7 @@ int DetectAddressParse2(DetectAddressHead *gh, DetectAddressHead *ghn, char *s,
d_set = 0;
n_set = 0;
if (temp_rule_var_address != rule_var_address)
free(temp_rule_var_address);
SCFree(temp_rule_var_address);
} else {
address[x - 1] = '\0';
@ -1003,7 +1003,7 @@ int DetectAddressParse2(DetectAddressHead *gh, DetectAddressHead *ghn, char *s,
goto error;
temp_rule_var_address = rule_var_address;
if ((negate + n_set) % 2) {
temp_rule_var_address = malloc(strlen(rule_var_address) + 3);
temp_rule_var_address = SCMalloc(strlen(rule_var_address) + 3);
if (temp_rule_var_address == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
@ -1015,7 +1015,7 @@ int DetectAddressParse2(DetectAddressHead *gh, DetectAddressHead *ghn, char *s,
(negate + n_set) % 2);
d_set = 0;
if (temp_rule_var_address != rule_var_address)
free(temp_rule_var_address);
SCFree(temp_rule_var_address);
} else {
if (!((negate + n_set) % 2)) {
if (DetectAddressSetup(gh, address) < 0)
@ -1251,7 +1251,7 @@ error:
*/
DetectAddressHead *DetectAddressHeadInit(void)
{
DetectAddressHead *gh = malloc(sizeof(DetectAddressHead));
DetectAddressHead *gh = SCMalloc(sizeof(DetectAddressHead));
if (gh == NULL)
return NULL;
memset(gh, 0, sizeof(DetectAddressHead));
@ -1301,7 +1301,7 @@ void DetectAddressHeadFree(DetectAddressHead *gh)
{
if (gh != NULL) {
DetectAddressHeadCleanup(gh);
free(gh);
SCFree(gh);
#ifdef DEBUG
detect_address_group_head_free_cnt++;
detect_address_group_head_memory -= sizeof(DetectAddressHead);

@ -224,7 +224,7 @@ void IPOnlyInit(DetectEngineCtx *de_ctx, DetectEngineIPOnlyCtx *io_ctx) {
io_ctx->ht24_dst = HashListTableInit(65536, IPOnlyHashFunc24, IPOnlyCompareFunc, IPOnlyFreeFunc);
*/
io_ctx->sig_init_size = DetectEngineGetMaxSigId(de_ctx) / 8 + 1;
if ( (io_ctx->sig_init_array = malloc(io_ctx->sig_init_size)) == NULL) {
if ( (io_ctx->sig_init_array = SCMalloc(io_ctx->sig_init_size)) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
@ -240,7 +240,7 @@ void DetectEngineIPOnlyThreadInit(DetectEngineCtx *de_ctx, DetectEngineIPOnlyThr
/* initialize the signature bitarray */
io_tctx->sig_match_size = de_ctx->io_ctx.max_idx / 8 + 1;
io_tctx->sig_match_array = malloc(io_tctx->sig_match_size);
io_tctx->sig_match_array = SCMalloc(io_tctx->sig_match_size);
memset(io_tctx->sig_match_array, 0, io_tctx->sig_match_size);
}
@ -270,7 +270,8 @@ void IPOnlyDeinit(DetectEngineCtx *de_ctx, DetectEngineIPOnlyCtx *io_ctx) {
HashListTableFree(io_ctx->ht24_dst);
io_ctx->ht24_dst = NULL;
*/
free(io_ctx->sig_init_array);
if (io_ctx->sig_init_array)
SCFree(io_ctx->sig_init_array);
io_ctx->sig_init_array = NULL;
}
@ -282,7 +283,7 @@ void DetectEngineIPOnlyThreadDeinit(DetectEngineIPOnlyThreadCtx *io_tctx) {
if (io_tctx->dst != NULL) {
DetectAddressFree(io_tctx->dst);
}
free(io_tctx->sig_match_array);
SCFree(io_tctx->sig_match_array);
}
}
@ -431,7 +432,7 @@ int IPOnlyBuildMatchArray(DetectEngineCtx *de_ctx, DetectEngineIPOnlyCtx *io_ctx
}
//printf("IPOnlyBuildMatchArray: sig_cnt %" PRIu32 "\n", io_ctx->sig_cnt);
io_ctx->match_array = malloc(io_ctx->sig_cnt * sizeof(uint32_t));
io_ctx->match_array = SCMalloc(io_ctx->sig_cnt * sizeof(uint32_t));
if (io_ctx->match_array == NULL)
return -1;

@ -262,7 +262,7 @@ void PatternMatchDestroyGroup(SigGroupHead *sh) {
!(sh->flags & SIG_GROUP_HEAD_MPM_COPY)) {
SCLogDebug("destroying mpm_ctx %p (sh %p)", sh->mpm_ctx, sh);
mpm_table[sh->mpm_ctx->mpm_type].DestroyCtx(sh->mpm_ctx);
free(sh->mpm_ctx);
SCFree(sh->mpm_ctx);
/* ready for reuse */
sh->mpm_ctx = NULL;
@ -274,7 +274,7 @@ void PatternMatchDestroyGroup(SigGroupHead *sh) {
!(sh->flags & SIG_GROUP_HEAD_MPM_URI_COPY)) {
SCLogDebug("destroying mpm_uri_ctx %p (sh %p)", sh->mpm_uri_ctx, sh);
mpm_table[sh->mpm_uri_ctx->mpm_type].DestroyCtx(sh->mpm_uri_ctx);
free(sh->mpm_uri_ctx);
SCFree(sh->mpm_uri_ctx);
/* ready for reuse */
sh->mpm_uri_ctx = NULL;
@ -352,7 +352,7 @@ char ContentHashCompareFunc(void *data1, uint16_t len1, void *data2, uint16_t le
}
ContentHash *ContentHashAlloc(DetectContentData *ptr) {
ContentHash *ch = malloc(sizeof(ContentHash));
ContentHash *ch = SCMalloc(sizeof(ContentHash));
if (ch == NULL)
return NULL;
@ -365,7 +365,7 @@ ContentHash *ContentHashAlloc(DetectContentData *ptr) {
}
void ContentHashFree(void *ch) {
free(ch);
SCFree(ch);
}
/** \brief Predict a strength value for patterns
@ -405,7 +405,7 @@ static int PatternMatchPreprarePopulateMpm(DetectEngineCtx *de_ctx, SigGroupHead
uint32_t sig;
uint32_t *fast_pattern = NULL;
fast_pattern = (uint32_t *)malloc(sgh->sig_cnt * sizeof(uint32_t));
fast_pattern = (uint32_t *)SCMalloc(sgh->sig_cnt * sizeof(uint32_t));
if (fast_pattern == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
return -1;
@ -414,7 +414,7 @@ static int PatternMatchPreprarePopulateMpm(DetectEngineCtx *de_ctx, SigGroupHead
HashTable *ht = HashTableInit(4096, ContentHashFunc, ContentHashCompareFunc, ContentHashFree);
if (ht == NULL) {
free(fast_pattern);
SCFree(fast_pattern);
return -1;
}
@ -639,12 +639,12 @@ static int PatternMatchPreprarePopulateMpm(DetectEngineCtx *de_ctx, SigGroupHead
}
if (fast_pattern != NULL)
free(fast_pattern);
SCFree(fast_pattern);
HashTableFree(ht);
return 0;
error:
if (fast_pattern != NULL)
free(fast_pattern);
SCFree(fast_pattern);
if (ht != NULL)
HashTableFree(ht);
return -1;
@ -704,7 +704,7 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
/* intialize contexes */
if (sh->flags & SIG_GROUP_HAVECONTENT && !(sh->flags & SIG_GROUP_HEAD_MPM_COPY)) {
/* search */
sh->mpm_ctx = malloc(sizeof(MpmCtx));
sh->mpm_ctx = SCMalloc(sizeof(MpmCtx));
if (sh->mpm_ctx == NULL)
goto error;
@ -716,7 +716,7 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
#endif
}
if (sh->flags & SIG_GROUP_HAVEURICONTENT && !(sh->flags & SIG_GROUP_HEAD_MPM_URI_COPY)) {
sh->mpm_uri_ctx = malloc(sizeof(MpmCtx));
sh->mpm_uri_ctx = SCMalloc(sizeof(MpmCtx));
if (sh->mpm_uri_ctx == NULL)
goto error;

@ -15,6 +15,7 @@
#include "util-cidr.h"
#include "util-unittest.h"
#include "util-unittest-helper.h"
#include "util-rule-vars.h"
#include "detect-parse.h"
@ -56,7 +57,7 @@ void DetectPortRegister(void) {
* case of error.
*/
DetectPort *DetectPortInit(void) {
DetectPort *dp = malloc(sizeof(DetectPort));
DetectPort *dp = SCMalloc(sizeof(DetectPort));
if (dp == NULL) {
// SCLogDebug(SC_ERR_MEM_ALLOC, "Error allocating memory");
return NULL;
@ -93,7 +94,7 @@ void DetectPortFree(DetectPort *dp) {
detect_port_memory -= sizeof(DetectPort);
detect_port_free_cnt++;
free(dp);
SCFree(dp);
}
/**
@ -925,7 +926,7 @@ static int DetectPortParseInsertString(DetectPort **head, char *s) {
*/
if (ad2 != NULL) {
if (DetectPortParseInsert(head, ad2) < 0) {
if (ad2 != NULL) free(ad2);
if (ad2 != NULL) SCFree(ad2);
goto error;
}
}
@ -1041,7 +1042,7 @@ static int DetectPortParseDo(DetectPort **head, DetectPort **nhead, char *s,
goto error;
temp_rule_var_port = rule_var_port;
if (negate == 1 || n_set == 1) {
temp_rule_var_port = malloc(strlen(rule_var_port) + 3);
temp_rule_var_port = SCMalloc(strlen(rule_var_port) + 3);
if (temp_rule_var_port == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
@ -1057,7 +1058,7 @@ static int DetectPortParseDo(DetectPort **head, DetectPort **nhead, char *s,
d_set = 0;
n_set = 0;
if (temp_rule_var_port != rule_var_port)
free(temp_rule_var_port);
SCFree(temp_rule_var_port);
} else {
address[x - 1] = '\0';
SCLogDebug("Parsed port from DetectPortParseDo - %s", address);
@ -1088,7 +1089,7 @@ static int DetectPortParseDo(DetectPort **head, DetectPort **nhead, char *s,
goto error;
temp_rule_var_port = rule_var_port;
if ((negate + n_set) % 2) {
temp_rule_var_port = malloc(strlen(rule_var_port) + 3);
temp_rule_var_port = SCMalloc(strlen(rule_var_port) + 3);
if (temp_rule_var_port == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
@ -1103,7 +1104,7 @@ static int DetectPortParseDo(DetectPort **head, DetectPort **nhead, char *s,
d_set = 0;
if (temp_rule_var_port != rule_var_port)
free(temp_rule_var_port);
SCFree(temp_rule_var_port);
} else {
if (!((negate + n_set) % 2)) {
r = DetectPortParseInsertString(head,address);
@ -1298,7 +1299,7 @@ error:
* \retval NULL on error
*/
DetectPort *PortParse(char *str) {
char *portdup = strdup(str);
char *portdup = SCStrdup(str);
char *port2 = NULL;
DetectPort *dp = NULL;
@ -1351,14 +1352,14 @@ DetectPort *PortParse(char *str) {
}
}
free(portdup);
SCFree(portdup);
return dp;
error:
if (dp != NULL)
DetectPortCleanupList(dp);
if (portdup) free(portdup);
if (portdup) SCFree(portdup);
return NULL;
}
@ -2154,56 +2155,10 @@ int PortTestMatchReal(uint8_t *raw_eth_pkt, uint16_t pktsize, char *sig,
uint32_t sid)
{
int result = 1;
Packet p;
DecodeThreadVars dtv;
ThreadVars th_v;
DetectEngineThreadCtx *det_ctx = NULL;
memset(&p, 0, sizeof(Packet));
memset(&dtv, 0, sizeof(DecodeThreadVars));
memset(&th_v, 0, sizeof(th_v));
FlowInitConfig(FLOW_QUIET);
DecodeEthernet(&th_v, &dtv, &p, raw_eth_pkt, pktsize, NULL);
DetectEngineCtx *de_ctx = DetectEngineCtxInit();
if (de_ctx == NULL) {
result=0;
goto end;
}
de_ctx->flags |= DE_QUIET;
de_ctx->sig_list = SigInit(de_ctx, sig);
de_ctx->sig_list->next = NULL;
if (de_ctx->sig_list == NULL) {
result = 0;
goto end;
}
SigGroupBuild(de_ctx);
//PatternMatchPrepare(mpm_ctx, MPM_B2G);
DetectEngineThreadCtxInit(&th_v, (void *)de_ctx, (void *)&det_ctx);
SigMatchSignatures(&th_v, de_ctx, det_ctx, &p);
if (PacketAlertCheck(&p, sid) != 1) {
result = 0;
goto end;
}
end:
if (de_ctx != NULL)
{
//PatternMatchDestroy(mpm_ctx);
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
DetectEngineCtxFree(de_ctx);
}
Packet *p = UTHBuildPacketFromEth(raw_eth_pkt, pktsize);
result = UTHPacketMatchSig(p, sig);
FlowShutdown();
return result;
}
@ -2283,8 +2238,7 @@ int PortTestMatchRealWrp(char *sig, uint32_t sid) {
int PortTestMatchReal01()
{
/* tcp.sport=47370 tcp.dport=80 */
char *sig = "alert tcp any any -> any 80 (msg:\"Nothing..\";"
" content:\"GET\"; sid:1;)";
char *sig = "alert tcp any any -> any 80 (msg:\"Nothing..\"; content:\"GET\"; sid:1;)";
return PortTestMatchRealWrp(sig, 1);
}
@ -2464,7 +2418,7 @@ int PortTestMatchReal18()
int PortTestMatchReal19()
{
char *sig = "alert tcp any any -> any 80 (msg:\"Nothing..\";"
" sid:1;)";
" content:\"GET\"; sid:1;)";
return PortTestMatchRealWrp(sig, 1);
}

@ -41,7 +41,7 @@ void DetectProtoRegister (void)
DetectProto *DetectProtoInit(void)
{
DetectProto *dp = malloc(sizeof(DetectProto));
DetectProto *dp = SCMalloc(sizeof(DetectProto));
if (dp == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "error in memory allocation");
return NULL;
@ -61,7 +61,7 @@ void DetectProtoFree(DetectProto *dp)
if (dp == NULL)
return;
free(dp);
SCFree(dp);
}
/**

@ -43,7 +43,7 @@ static uint32_t detect_siggroup_matcharray_init_cnt = 0;
static uint32_t detect_siggroup_matcharray_free_cnt = 0;
static SigGroupHeadInitData *SigGroupHeadInitDataAlloc(uint32_t size) {
SigGroupHeadInitData *sghid = malloc(sizeof(SigGroupHeadInitData));
SigGroupHeadInitData *sghid = SCMalloc(sizeof(SigGroupHeadInitData));
if (sghid == NULL)
return NULL;
@ -56,16 +56,16 @@ static SigGroupHeadInitData *SigGroupHeadInitDataAlloc(uint32_t size) {
void SigGroupHeadInitDataFree(SigGroupHeadInitData *sghid) {
if (sghid->content_array != NULL) {
free(sghid->content_array);
SCFree(sghid->content_array);
sghid->content_array = NULL;
sghid->content_size = 0;
}
if (sghid->uri_content_array != NULL) {
free(sghid->uri_content_array);
SCFree(sghid->uri_content_array);
sghid->uri_content_array = NULL;
sghid->uri_content_size = 0;
}
free(sghid);
SCFree(sghid);
detect_siggroup_head_initdata_free_cnt++;
detect_siggroup_head_initdata_memory -= sizeof(SigGroupHeadInitData);
@ -82,7 +82,7 @@ void SigGroupHeadInitDataFree(SigGroupHeadInitData *sghid) {
*/
static SigGroupHead *SigGroupHeadAlloc(uint32_t size)
{
SigGroupHead *sgh = malloc(sizeof(SigGroupHead));
SigGroupHead *sgh = SCMalloc(sizeof(SigGroupHead));
if (sgh == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
return NULL;
@ -98,7 +98,7 @@ static SigGroupHead *SigGroupHeadAlloc(uint32_t size)
/* initialize the signature bitarray */
sgh->sig_size = size;
if ( (sgh->sig_array = malloc(sgh->sig_size)) == NULL) {
if ( (sgh->sig_array = SCMalloc(sgh->sig_size)) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
}
@ -130,7 +130,7 @@ void SigGroupHeadFree(SigGroupHead *sgh)
PatternMatchDestroyGroup(sgh);
if (sgh->sig_array != NULL) {
free(sgh->sig_array);
SCFree(sgh->sig_array);
sgh->sig_array = NULL;
detect_siggroup_sigarray_free_cnt++;
@ -140,7 +140,7 @@ void SigGroupHeadFree(SigGroupHead *sgh)
if (sgh->match_array != NULL) {
detect_siggroup_matcharray_free_cnt++;
detect_siggroup_matcharray_memory -= (sgh->sig_cnt * sizeof(SigIntId));
free(sgh->match_array);
SCFree(sgh->match_array);
sgh->match_array = NULL;
sgh->sig_cnt = 0;
}
@ -150,7 +150,7 @@ void SigGroupHeadFree(SigGroupHead *sgh)
sgh->init = NULL;
}
free(sgh);
SCFree(sgh);
detect_siggroup_head_free_cnt++;
detect_siggroup_head_memory -= sizeof(SigGroupHead);
@ -612,7 +612,7 @@ SigGroupHead *SigGroupHeadDPortHashLookup(DetectEngineCtx *de_ctx,
*/
void SigGroupHeadDPortHashFree(DetectEngineCtx *de_ctx)
{
if (de_ctx->dport_hash_table == NULL)
if (de_ctx->sgh_dport_hash_table == NULL)
return;
HashListTableFree(de_ctx->sgh_dport_hash_table);
@ -693,7 +693,7 @@ SigGroupHead *SigGroupHeadSPortHashLookup(DetectEngineCtx *de_ctx,
*/
void SigGroupHeadSPortHashFree(DetectEngineCtx *de_ctx)
{
if (de_ctx->sport_hash_table == NULL)
if (de_ctx->sgh_sport_hash_table == NULL)
return;
HashListTableFree(de_ctx->sgh_sport_hash_table);
@ -724,7 +724,7 @@ static void SigGroupHeadFreeSigArraysHash2(DetectEngineCtx *de_ctx,
detect_siggroup_sigarray_free_cnt++;
detect_siggroup_sigarray_memory -= sgh->sig_size;
free(sgh->sig_array);
SCFree(sgh->sig_array);
sgh->sig_array = NULL;
sgh->sig_size = 0;
}
@ -760,7 +760,7 @@ static void SigGroupHeadFreeSigArraysHash(DetectEngineCtx *de_ctx,
detect_siggroup_sigarray_free_cnt++;
detect_siggroup_sigarray_memory -= sgh->sig_size;
free(sgh->sig_array);
SCFree(sgh->sig_array);
sgh->sig_array = NULL;
sgh->sig_size = 0;
}
@ -1118,7 +1118,7 @@ int SigGroupHeadLoadContent(DetectEngineCtx *de_ctx, SigGroupHead *sgh)
BUG_ON(sgh->init == NULL);
sgh->init->content_size = (DetectContentMaxId(de_ctx) / 8) + 1;
sgh->init->content_array = malloc(sgh->init->content_size);
sgh->init->content_array = SCMalloc(sgh->init->content_size);
if (sgh->init->content_array == NULL)
return -1;
@ -1164,7 +1164,7 @@ int SigGroupHeadClearContent(SigGroupHead *sh)
return 0;
if (sh->init->content_array != NULL) {
free(sh->init->content_array);
SCFree(sh->init->content_array);
sh->init->content_array = NULL;
sh->init->content_size = 0;
}
@ -1201,7 +1201,7 @@ int SigGroupHeadLoadUricontent(DetectEngineCtx *de_ctx, SigGroupHead *sgh)
BUG_ON(sgh->init == NULL);
sgh->init->uri_content_size = (DetectUricontentMaxId(de_ctx) / 8) + 1;
sgh->init->uri_content_array = malloc(sgh->init->uri_content_size);
sgh->init->uri_content_array = SCMalloc(sgh->init->uri_content_size);
if (sgh->init->uri_content_array == NULL)
return -1;
@ -1248,7 +1248,7 @@ int SigGroupHeadClearUricontent(SigGroupHead *sh)
return 0;
if (sh->init->uri_content_array != NULL) {
free(sh->init->uri_content_array);
SCFree(sh->init->uri_content_array);
sh->init->uri_content_array = NULL;
sh->init->uri_content_size = 0;
}
@ -1279,7 +1279,7 @@ int SigGroupHeadBuildMatchArray(DetectEngineCtx *de_ctx, SigGroupHead *sgh,
BUG_ON(sgh->match_array != NULL);
sgh->match_array = malloc(sgh->sig_cnt * sizeof(SigIntId));
sgh->match_array = SCMalloc(sgh->sig_cnt * sizeof(SigIntId));
if (sgh->match_array == NULL)
return -1;
@ -1362,17 +1362,15 @@ static int SigGroupHeadTest01(void)
{
int result = 1;
DetectEngineCtx *de_ctx = DetectEngineCtxInit();
DetectEngineCtx de_ctx;
SigGroupHeadMpmHashInit(de_ctx);
SigGroupHeadMpmHashInit(&de_ctx);
result &= (de_ctx->sgh_mpm_hash_table != NULL);
result &= (de_ctx.sgh_mpm_hash_table != NULL);
SigGroupHeadMpmHashFree(de_ctx);
SigGroupHeadMpmHashFree(&de_ctx);
result &= (de_ctx->sgh_mpm_hash_table == NULL);
DetectEngineCtxFree(de_ctx);
result &= (de_ctx.sgh_mpm_hash_table == NULL);
return result;
}
@ -1386,17 +1384,15 @@ static int SigGroupHeadTest02(void)
{
int result = 1;
DetectEngineCtx *de_ctx = DetectEngineCtxInit();
SigGroupHeadMpmUriHashInit(de_ctx);
DetectEngineCtx de_ctx;
result &= (de_ctx->sgh_mpm_uri_hash_table != NULL);
SigGroupHeadMpmUriHashInit(&de_ctx);
SigGroupHeadMpmUriHashFree(de_ctx);
result &= (de_ctx.sgh_mpm_uri_hash_table != NULL);
result &= (de_ctx->sgh_mpm_uri_hash_table == NULL);
SigGroupHeadMpmUriHashFree(&de_ctx);
DetectEngineCtxFree(de_ctx);
result &= (de_ctx.sgh_mpm_uri_hash_table == NULL);
return result;
}
@ -1410,17 +1406,15 @@ static int SigGroupHeadTest03(void)
{
int result = 1;
DetectEngineCtx *de_ctx = DetectEngineCtxInit();
DetectEngineCtx de_ctx;
SigGroupHeadHashInit(de_ctx);
SigGroupHeadHashInit(&de_ctx);
result &= (de_ctx->sgh_hash_table != NULL);
result &= (de_ctx.sgh_hash_table != NULL);
SigGroupHeadHashFree(de_ctx);
SigGroupHeadHashFree(&de_ctx);
result &= (de_ctx->sgh_hash_table == NULL);
DetectEngineCtxFree(de_ctx);
result &= (de_ctx.sgh_hash_table == NULL);
return result;
}
@ -1434,17 +1428,15 @@ static int SigGroupHeadTest04(void)
{
int result = 1;
DetectEngineCtx *de_ctx = DetectEngineCtxInit();
SigGroupHeadDPortHashInit(de_ctx);
DetectEngineCtx de_ctx;
result &= (de_ctx->sgh_dport_hash_table != NULL);
SigGroupHeadDPortHashInit(&de_ctx);
SigGroupHeadDPortHashFree(de_ctx);
result &= (de_ctx.sgh_dport_hash_table != NULL);
result &= (de_ctx->sgh_dport_hash_table == NULL);
SigGroupHeadDPortHashFree(&de_ctx);
DetectEngineCtxFree(de_ctx);
result &= (de_ctx.sgh_dport_hash_table == NULL);
return result;
}
@ -1458,17 +1450,15 @@ static int SigGroupHeadTest05(void)
{
int result = 1;
DetectEngineCtx *de_ctx = DetectEngineCtxInit();
SigGroupHeadSPortHashInit(de_ctx);
DetectEngineCtx de_ctx;
result &= (de_ctx->sgh_sport_hash_table != NULL);
SigGroupHeadSPortHashInit(&de_ctx);
SigGroupHeadSPortHashFree(de_ctx);
result &= (de_ctx.sgh_sport_hash_table != NULL);
result &= (de_ctx->sgh_sport_hash_table == NULL);
SigGroupHeadSPortHashFree(&de_ctx);
DetectEngineCtxFree(de_ctx);
result &= (de_ctx.sgh_sport_hash_table == NULL);
return result;
}

@ -55,7 +55,7 @@ static void SCSigRegisterSignatureOrderingFunc(DetectEngineCtx *de_ctx,
if (curr != NULL)
return;
if ( (temp = malloc(sizeof(SCSigOrderFunc))) == NULL) {
if ( (temp = SCMalloc(sizeof(SCSigOrderFunc))) == NULL) {
printf("Error allocating memory\n");
exit(EXIT_FAILURE);
}
@ -739,7 +739,7 @@ static inline SCSigSignatureWrapper *SCSigAllocSignatureWrapper(Signature *sig)
SCSigSignatureWrapper *sw = NULL;
int i = 0;
if ( (sw = malloc(sizeof(SCSigSignatureWrapper))) == NULL) {
if ( (sw = SCMalloc(sizeof(SCSigSignatureWrapper))) == NULL) {
printf("Error allocating memory\n");
exit(EXIT_FAILURE);
}
@ -747,14 +747,14 @@ static inline SCSigSignatureWrapper *SCSigAllocSignatureWrapper(Signature *sig)
sw->sig = sig;
if ( (sw->user = malloc(SC_RADIX_USER_DATA_MAX * sizeof(int *))) == NULL) {
if ( (sw->user = SCMalloc(SC_RADIX_USER_DATA_MAX * sizeof(int *))) == NULL) {
printf("Error allocating memory\n");
exit(EXIT_FAILURE);
}
memset(sw->user, 0, SC_RADIX_USER_DATA_MAX * sizeof(int *));
for (i = 0; i < SC_RADIX_USER_DATA_MAX; i++) {
if ( (sw->user[i] = malloc(sizeof(int))) == NULL) {
if ( (sw->user[i] = SCMalloc(sizeof(int))) == NULL) {
printf("Error allocating memory\n");
exit(EXIT_FAILURE);
}
@ -871,7 +871,7 @@ void SCSigSignatureOrderingModuleCleanup(DetectEngineCtx *de_ctx)
while (funcs != NULL) {
temp = funcs;
funcs = funcs->next;
free(temp);
SCFree(temp);
}
de_ctx->sc_sig_order_funcs = NULL;
@ -880,7 +880,7 @@ void SCSigSignatureOrderingModuleCleanup(DetectEngineCtx *de_ctx)
while (sigw != NULL) {
temp = sigw;
sigw = sigw->next;
free(temp);
SCFree(temp);
}
de_ctx->sc_sig_sig_wrapper = NULL;
@ -1070,8 +1070,9 @@ static int SCSigTestSignatureOrdering02(void)
sw = sw->next;
}
DetectEngineCtxFree(de_ctx);
end:
if (de_ctx != NULL)
DetectEngineCtxFree(de_ctx);
return result;
}
@ -1207,8 +1208,9 @@ static int SCSigTestSignatureOrdering03(void)
sw = sw->next;
}
DetectEngineCtxFree(de_ctx);
end:
if (de_ctx != NULL)
DetectEngineCtxFree(de_ctx);
return result;
}
@ -1308,8 +1310,9 @@ static int SCSigTestSignatureOrdering04(void)
sw = sw->next;
}
DetectEngineCtxFree(de_ctx);
end:
if (de_ctx)
DetectEngineCtxFree(de_ctx);
return result;
}
@ -1402,8 +1405,9 @@ static int SCSigTestSignatureOrdering05(void)
sw = sw->next;
}
DetectEngineCtxFree(de_ctx);
end:
if (de_ctx != NULL)
DetectEngineCtxFree(de_ctx);
return result;
}
@ -1496,8 +1500,9 @@ static int SCSigTestSignatureOrdering06(void)
sw = sw->next;
}
DetectEngineCtxFree(de_ctx);
end:
if (de_ctx != NULL)
DetectEngineCtxFree(de_ctx);
return result;
}

@ -236,9 +236,9 @@ void PacketAlertThreshold(DetectEngineCtx *de_ctx, DetectThresholdData *td, Pack
SCReturn;
/* setup the Entry we use to search our hash with */
ste = malloc(sizeof(DetectThresholdEntry));
ste = SCMalloc(sizeof(DetectThresholdEntry));
if (ste == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed: %s", strerror(errno));
SCLogError(SC_ERR_MEM_ALLOC, "SCMalloc failed: %s", strerror(errno));
SCReturn;
}
memset(ste, 0x00, sizeof(ste));
@ -361,7 +361,7 @@ void PacketAlertThreshold(DetectEngineCtx *de_ctx, DetectThresholdData *td, Pack
SCMutexUnlock(&de_ctx->ths_ctx.threshold_table_lock);
if (ste != NULL)
free(ste);
SCFree(ste);
ThresholdTimeoutRemove(de_ctx);
SCReturn;
@ -370,7 +370,7 @@ void PacketAlertThreshold(DetectEngineCtx *de_ctx, DetectThresholdData *td, Pack
void ThresholdFreeFunc(void *data)
{
if (data != NULL)
free(data);
SCFree(data);
return;
}

@ -34,7 +34,7 @@ static uint8_t DetectEngineCtxLoadConf(DetectEngineCtx *);
DetectEngineCtx *DetectEngineCtxInit(void) {
DetectEngineCtx *de_ctx;
de_ctx = malloc(sizeof(DetectEngineCtx));
de_ctx = SCMalloc(sizeof(DetectEngineCtx));
if (de_ctx == NULL) {
goto error;
}
@ -83,11 +83,11 @@ void DetectEngineCtxFree(DetectEngineCtx *de_ctx) {
VariableNameFreeHash(de_ctx);
if (de_ctx->sig_array)
free(de_ctx->sig_array);
SCFree(de_ctx->sig_array);
if (de_ctx->class_conf_ht != NULL)
HashTableFree(de_ctx->class_conf_ht);
free(de_ctx);
SCFree(de_ctx);
//DetectAddressGroupPrintMemory();
//DetectSigGroupPrintMemory();
//DetectPortPrintMemory();
@ -404,7 +404,7 @@ TmEcode DetectEngineThreadCtxInit(ThreadVars *tv, void *initdata, void **data) {
if (de_ctx == NULL)
return TM_ECODE_FAILED;
DetectEngineThreadCtx *det_ctx = malloc(sizeof(DetectEngineThreadCtx));
DetectEngineThreadCtx *det_ctx = SCMalloc(sizeof(DetectEngineThreadCtx));
if (det_ctx == NULL) {
return TM_ECODE_FAILED;
}
@ -444,7 +444,7 @@ TmEcode DetectEngineThreadCtxInit(ThreadVars *tv, void *initdata, void **data) {
char *cuda_outq_name = "cuda_mpm_rc_disp_outq";
uint8_t disp_outq_name_len = (strlen(tv->name) + strlen(cuda_outq_name) + 1);
char *disp_outq_name = malloc(disp_outq_name_len * sizeof(char));
char *disp_outq_name = SCMalloc(disp_outq_name_len * sizeof(char));
if (disp_outq_name == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
@ -489,7 +489,7 @@ TmEcode DetectEngineThreadCtxDeinit(ThreadVars *tv, void *data) {
PatternMatchThreadDestroy(&det_ctx->mtc, det_ctx->de_ctx->mpm_matcher);
PatternMatchThreadDestroy(&det_ctx->mtcu, det_ctx->de_ctx->mpm_matcher);
free(det_ctx);
SCFree(det_ctx);
return TM_ECODE_OK;
}

@ -606,13 +606,15 @@ int DetectFastPatternTest11(void)
if (PacketPatternScan(&th_v, det_ctx, &p) == 0)
result = 1;
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
end:
DetectEngineCtxFree(de_ctx);
if (de_ctx != NULL) {
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
if (det_ctx != NULL)
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
DetectEngineCtxFree(de_ctx);
}
return result;
}
@ -785,13 +787,14 @@ int DetectFastPatternTest14(void)
}else{
SCLogInfo("match on sig 1 fast_pattern no match sig 2 inspecting same payload");
}
end:
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
end:
DetectEngineCtxFree(de_ctx);
FlowShutdown();
return result;
}

@ -180,7 +180,7 @@ static DetectFlagsData *DetectFlagsParse (char *rawstr)
goto error;
}
de = malloc(sizeof(DetectFlagsData));
de = SCMalloc(sizeof(DetectFlagsData));
if (de == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
@ -396,16 +396,16 @@ static DetectFlagsData *DetectFlagsParse (char *rawstr)
}
for (i = 0; i < (ret - 1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
SCReturnPtr(de, "DetectFlagsData");
error:
for (i = 0; i < (ret - 1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
if (de) free(de);
if (de) SCFree(de);
SCReturnPtr(NULL, "DetectFlagsData");
}
@ -441,8 +441,8 @@ static int DetectFlagsSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
return 0;
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return -1;
}
@ -454,7 +454,7 @@ error:
*/
static void DetectFlagsFree(void *de_ptr) {
DetectFlagsData *de = (DetectFlagsData *)de_ptr;
if(de) free(de);
if(de) SCFree(de);
}
/*
@ -535,14 +535,14 @@ static int FlagsTestParse03 (void) {
ret = DetectFlagsMatch(&tv,NULL,&p,NULL,sm);
if(ret) {
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 1;
}
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 0;
}
@ -585,14 +585,14 @@ static int FlagsTestParse04 (void) {
ret = DetectFlagsMatch(&tv,NULL,&p,NULL,sm);
if(ret) {
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 1;
}
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 0;
}
@ -635,14 +635,14 @@ static int FlagsTestParse05 (void) {
ret = DetectFlagsMatch(&tv,NULL,&p,NULL,sm);
if(ret) {
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 1;
}
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 0;
}
@ -685,14 +685,14 @@ static int FlagsTestParse06 (void) {
ret = DetectFlagsMatch(&tv,NULL,&p,NULL,sm);
if(ret) {
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 1;
}
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 0;
}
@ -735,14 +735,14 @@ static int FlagsTestParse07 (void) {
ret = DetectFlagsMatch(&tv,NULL,&p,NULL,sm);
if(ret) {
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 1;
}
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 0;
}
@ -785,14 +785,14 @@ static int FlagsTestParse08 (void) {
ret = DetectFlagsMatch(&tv,NULL,&p,NULL,sm);
if(ret) {
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 1;
}
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 0;
}
@ -835,14 +835,14 @@ static int FlagsTestParse09 (void) {
ret = DetectFlagsMatch(&tv,NULL,&p,NULL,sm);
if(ret) {
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 1;
}
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 0;
}
@ -885,14 +885,14 @@ static int FlagsTestParse10 (void) {
ret = DetectFlagsMatch(&tv,NULL,&p,NULL,sm);
if(ret) {
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 1;
}
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 0;
}
@ -935,14 +935,14 @@ static int FlagsTestParse11 (void) {
ret = DetectFlagsMatch(&tv,NULL,&p,NULL,sm);
if(ret) {
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 1;
}
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 0;
}
@ -987,14 +987,14 @@ static int FlagsTestParse12 (void) {
ret = DetectFlagsMatch(&tv,NULL,&p,NULL,sm);
if(ret) {
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 1;
}
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 0;
}

@ -155,7 +155,7 @@ DetectFlowData *DetectFlowParse (char *flowstr)
}
}
fd = malloc(sizeof(DetectFlowData));
fd = SCMalloc(sizeof(DetectFlowData));
if (fd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
@ -231,13 +231,13 @@ DetectFlowData *DetectFlowParse (char *flowstr)
}
}
for (i = 0; i < (ret -1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
return fd;
error:
for (i = 0; i < (ret -1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
if (fd != NULL) DetectFlowFree(fd);
return NULL;
@ -281,7 +281,7 @@ int DetectFlowSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *f
error:
if (fd != NULL) DetectFlowFree(fd);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -293,7 +293,7 @@ error:
*/
void DetectFlowFree(void *ptr) {
DetectFlowData *fd = (DetectFlowData *)ptr;
free(fd);
SCFree(fd);
}
#ifdef UNITTESTS

@ -199,7 +199,7 @@ int DetectFlowbitSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
break;
}
cd = malloc(sizeof(DetectFlowbitsData));
cd = SCMalloc(sizeof(DetectFlowbitsData));
if (cd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "DetectFlowbitsSetup malloc failed");
goto error;
@ -239,9 +239,9 @@ error:
if (fb_cmd_str != NULL)
pcre_free_substring(fb_cmd_str);
if (cd != NULL)
free(cd);
SCFree(cd);
if (sm != NULL)
free(sm);
SCFree(sm);
return -1;
}
@ -251,7 +251,7 @@ void DetectFlowbitFree (void *ptr) {
if (fd == NULL)
return;
free(fd);
SCFree(fd);
}
#ifdef UNITTESTS
@ -814,7 +814,7 @@ static int FlowBitsTestSig07(void) {
goto end;
}
s = de_ctx->sig_list = SigInit(de_ctx,"alert ip any any -> any any (msg:\"Flowbit unset\"; flowbits:unset,myflow2; sid:11;)");
s = s->next = SigInit(de_ctx,"alert ip any any -> any any (msg:\"Flowbit unset\"; flowbits:unset,myflow2; sid:11;)");
if (s == NULL) {
goto end;
}

@ -263,7 +263,7 @@ DetectFlowintData *DetectFlowintParse(DetectEngineCtx *de_ctx,
goto error;
}
sfd = malloc(sizeof(DetectFlowintData));
sfd = SCMalloc(sizeof(DetectFlowintData));
if (sfd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
@ -276,13 +276,13 @@ DetectFlowintData *DetectFlowintParse(DetectEngineCtx *de_ctx,
varval =(char *) str_ptr;
if (res < 0 || strcmp(varval,"") == 0) {
SCLogError(SC_ERR_PCRE_GET_SUBSTRING, "pcre_get_substring failed");
free(sfd);
SCFree(sfd);
return NULL;
}
/* get the target value to operate with
*(it should be a value or another var) */
str = strdup(varval);
str = SCStrdup(varval);
if (str == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc from strdup failed");
goto error;
@ -305,7 +305,7 @@ DetectFlowintData *DetectFlowintParse(DetectEngineCtx *de_ctx,
}
/* Set the name of the origin var to modify/compared with the target */
sfd->name = strdup(varname);
sfd->name = SCStrdup(varname);
if (de_ctx != NULL)
sfd->idx = VariableNameGetIdx(de_ctx, varname, DETECT_FLOWINT);
sfd->target.value =(uint32_t) value_long;
@ -314,8 +314,8 @@ DetectFlowintData *DetectFlowintParse(DetectEngineCtx *de_ctx,
return sfd;
error:
if (sfd != NULL) free(sfd);
free(str);
if (sfd != NULL) SCFree(sfd);
SCFree(str);
return NULL;
}
@ -355,7 +355,7 @@ int DetectFlowintSetup(DetectEngineCtx *de_ctx,
error:
if (sfd) DetectFlowintFree(sfd);
if (sm) free(sm);
if (sm) SCFree(sm);
return -1;
}
@ -367,11 +367,11 @@ void DetectFlowintFree(void *tmp)
DetectFlowintData *sfd =(DetectFlowintData*) tmp;
if (sfd != NULL) {
if (sfd->name != NULL)
free(sfd->name);
SCFree(sfd->name);
if (sfd->targettype == FLOWINT_TARGET_VAR)
if (sfd->target.tvar.name != NULL)
free(sfd->target.tvar.name);
free(sfd);
SCFree(sfd->target.tvar.name);
SCFree(sfd);
}
}

@ -117,18 +117,18 @@ int DetectFlowvarSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
//printf("DetectFlowvarSetup: varname %s, varcontent %s\n", varname, varcontent);
if (varcontent[0] == '\"' && varcontent[strlen(varcontent)-1] == '\"') {
str = strdup(varcontent+1);
str = SCStrdup(varcontent+1);
str[strlen(varcontent)-2] = '\0';
dubbed = 1;
}
len = strlen(str);
if (len == 0) {
if (dubbed) free(str);
if (dubbed) SCFree(str);
return -1;
}
cd = malloc(sizeof(DetectFlowvarData));
cd = SCMalloc(sizeof(DetectFlowvarData));
if (cd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
@ -191,14 +191,14 @@ int DetectFlowvarSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
len = x;
}
cd->content = malloc(len);
cd->content = SCMalloc(len);
if (cd->content == NULL) {
if (dubbed) free(str);
free(cd);
if (dubbed) SCFree(str);
SCFree(cd);
return -1;
}
cd->name = strdup(varname);
cd->name = SCStrdup(varname);
cd->idx = VariableNameGetIdx(de_ctx,varname,DETECT_FLOWVAR);
memcpy(cd->content, str, len);
cd->content_len = len;
@ -215,13 +215,13 @@ int DetectFlowvarSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
SigMatchAppend(s,m,sm);
if (dubbed) free(str);
if (dubbed) SCFree(str);
return 0;
error:
if (dubbed) free(str);
if (cd) free(cd);
if (sm) free(sm);
if (dubbed) SCFree(str);
if (cd) SCFree(cd);
if (sm) SCFree(sm);
return -1;
}

@ -165,7 +165,7 @@ static DetectFragBitsData *DetectFragBitsParse (char *rawstr)
goto error;
}
de = malloc(sizeof(DetectFragBitsData));
de = SCMalloc(sizeof(DetectFragBitsData));
if (de == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
@ -228,15 +228,15 @@ static DetectFragBitsData *DetectFragBitsParse (char *rawstr)
goto error;
for (i = 0; i < (ret - 1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
return de;
error:
for (i = 0; i < (ret - 1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
if (de) free(de);
if (de) SCFree(de);
return NULL;
}
@ -272,8 +272,8 @@ static int DetectFragBitsSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch
return 0;
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return -1;
}
@ -285,7 +285,7 @@ error:
*/
static void DetectFragBitsFree(void *de_ptr) {
DetectFragBitsData *de = (DetectFragBitsData *)de_ptr;
if(de) free(de);
if(de) SCFree(de);
}
/*
@ -408,14 +408,14 @@ static int FragBitsTestParse03 (void) {
ret = DetectFragBitsMatch(&tv,NULL,&p,NULL,sm);
if(ret) {
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 1;
}
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 0;
}
@ -500,14 +500,14 @@ static int FragBitsTestParse04 (void) {
ret = DetectFragBitsMatch(&tv,NULL,&p,NULL,sm);
if(ret) {
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 1;
}
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 0;
}
#endif /* UNITTESTS */

@ -134,7 +134,7 @@ DetectFragOffsetData *DetectFragOffsetParse (char *fragoffsetstr) {
substr[i-1] = (char *)str_ptr;
}
fragoff = malloc(sizeof(DetectFragOffsetData));
fragoff = SCMalloc(sizeof(DetectFragOffsetData));
if (fragoff == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
@ -163,14 +163,14 @@ DetectFragOffsetData *DetectFragOffsetParse (char *fragoffsetstr) {
ByteExtractStringUint16(&fragoff->frag_off, 10, 0, substr[1]);
for (i = 0; i < 2; i++) {
if (substr[i] != NULL) free(substr[i]);
if (substr[i] != NULL) SCFree(substr[i]);
}
return fragoff;
error:
for (i = 0; i < 2; i++) {
if (substr[i] != NULL) free(substr[i]);
if (substr[i] != NULL) SCFree(substr[i]);
}
if (fragoff != NULL) DetectFragOffsetFree(fragoff);
return NULL;
@ -207,7 +207,7 @@ int DetectFragOffsetSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, c
error:
if (fragoff != NULL) DetectFragOffsetFree(fragoff);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -219,7 +219,7 @@ error:
*/
void DetectFragOffsetFree (void *ptr) {
DetectFragOffsetData *fragoff = (DetectFragOffsetData *)ptr;
free(fragoff);
SCFree(fragoff);
}
#ifdef UNITTESTS

@ -333,6 +333,7 @@ static int DetectFtpbounceTestALMatch02(void) {
SigGroupBuild(de_ctx);
DetectEngineThreadCtxInit(&th_v,(void *)de_ctx,(void *)&det_ctx);
StreamL7DataPtrInit(&ssn);
int r = AppLayerParse(&f, ALPROTO_FTP, STREAM_TOSERVER, ftpbuf1, ftplen1);
if (r != 0) {
SCLogDebug("toserver chunk 1 returned %" PRId32 ", expected 0: ", r);

@ -93,7 +93,7 @@ static uint32_t DetectGidParse (char *rawstr)
rc = (uint32_t )atol(ptr);
free(ptr);
SCFree(ptr);
return rc;
}

@ -187,24 +187,24 @@ int DetectHttpCookieSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
}
/* Setup the HttpCookie data from Content data structure */
hd = malloc(sizeof(DetectHttpCookieData));
hd = SCMalloc(sizeof(DetectHttpCookieData));
if (hd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
SCLogError(SC_ERR_MEM_ALLOC, "SCMalloc failed");
goto error;
}
memset(hd, 0, sizeof(DetectHttpCookieData));
hd->data_len = ((DetectContentData *)m->ctx)->content_len;
hd->data = malloc(hd->data_len);
hd->data = SCMalloc(hd->data_len);
if (hd->data == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
SCLogError(SC_ERR_MEM_ALLOC, "SCMalloc failed");
goto error;
}
memcpy(hd->data, ((DetectContentData *)m->ctx)->content, hd->data_len);
/* Okay we need to replace the type to HTTP_COOKIE from CONTENT */
free(((DetectContentData *)m->ctx)->content);
free(m->ctx);
SCFree(((DetectContentData *)m->ctx)->content);
SCFree(m->ctx);
m->type = DETECT_AL_HTTP_COOKIE;
m->ctx = (void *)hd;
@ -215,10 +215,10 @@ int DetectHttpCookieSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
error:
if (hd != NULL) {
if (hd->data != NULL)
free(hd->data);
free(hd);
SCFree(hd->data);
SCFree(hd);
}
if(sm !=NULL) free(sm);
if(sm !=NULL) SCFree(sm);
return -1;
}
@ -418,6 +418,7 @@ static int DetectHttpCookieSigTest01(void) {
Signature *s = NULL;
ThreadVars th_v;
DetectEngineThreadCtx *det_ctx;
HtpState *http_state = NULL;
memset(&th_v, 0, sizeof(th_v));
memset(&p, 0, sizeof(p));
@ -469,7 +470,7 @@ static int DetectHttpCookieSigTest01(void) {
goto end;
}
HtpState *http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
if (http_state == NULL) {
printf("no http state: ");
result = 0;
@ -490,8 +491,11 @@ static int DetectHttpCookieSigTest01(void) {
result = 1;
end:
if (http_state != NULL)
HTPStateFree(http_state);
if (de_ctx != NULL) SigGroupCleanup(de_ctx);
if (de_ctx != NULL) SigCleanSignatures(de_ctx);
if (det_ctx != NULL) DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
if (de_ctx != NULL) DetectEngineCtxFree(de_ctx);
StreamL7DataPtrFree(&ssn);
@ -510,6 +514,7 @@ static int DetectHttpCookieSigTest02(void) {
Signature *s = NULL;
ThreadVars th_v;
DetectEngineThreadCtx *det_ctx;
HtpState *http_state = NULL;
memset(&th_v, 0, sizeof(th_v));
memset(&p, 0, sizeof(p));
@ -554,7 +559,7 @@ static int DetectHttpCookieSigTest02(void) {
goto end;
}
HtpState *http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
if (http_state == NULL) {
printf("no http state: ");
result = 0;
@ -570,6 +575,8 @@ static int DetectHttpCookieSigTest02(void) {
result = 1;
end:
if (http_state != NULL)
HTPStateFree(http_state);
if (de_ctx != NULL) SigGroupCleanup(de_ctx);
if (de_ctx != NULL) SigCleanSignatures(de_ctx);
if (de_ctx != NULL) DetectEngineCtxFree(de_ctx);

@ -173,18 +173,18 @@ int DetectHttpMethodSetup(DetectEngineCtx *de_ctx, Signature *s,
SCReturnInt(-1);
}
data = malloc(sizeof(DetectHttpMethodData));
data = SCMalloc(sizeof(DetectHttpMethodData));
if (data == NULL) {
// XXX: Should we bother with an error - it may fail too?
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
SCLogError(SC_ERR_MEM_ALLOC, "SCMalloc failed");
goto error;
}
data->content_len = ((DetectContentData *)m->ctx)->content_len;
data->content = malloc(data->content_len);
data->content = SCMalloc(data->content_len);
if (data->content == NULL) {
// XXX: Should we bother with an error - it may fail too?
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
SCLogError(SC_ERR_MEM_ALLOC, "SCMalloc failed");
goto error;
}
memcpy(data->content,
@ -194,8 +194,8 @@ int DetectHttpMethodSetup(DetectEngineCtx *de_ctx, Signature *s,
data->method = htp_convert_method_to_number(method);
/* Okay we need to replace the type to HTTP_METHOD from CONTENT */
free(((DetectContentData *)m->ctx)->content);
free(m->ctx);
SCFree(((DetectContentData *)m->ctx)->content);
SCFree(m->ctx);
m->type = DETECT_AL_HTTP_METHOD;
m->ctx = (void *)data;
@ -206,7 +206,7 @@ int DetectHttpMethodSetup(DetectEngineCtx *de_ctx, Signature *s,
error:
if (data != NULL) DetectHttpMethodFree(data);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
SCReturnInt(-1);
}
@ -218,8 +218,8 @@ error:
void DetectHttpMethodFree(void *ptr) {
DetectHttpMethodData *data = (DetectHttpMethodData *)ptr;
if (data->content != NULL) free(data->content);
free(data);
if (data->content != NULL) SCFree(data->content);
SCFree(data);
}
#ifdef UNITTESTS /* UNITTESTS */
@ -371,6 +371,7 @@ static int DetectHttpMethodSigTest01(void)
Signature *s = NULL;
ThreadVars th_v;
DetectEngineThreadCtx *det_ctx;
HtpState *http_state = NULL;
memset(&th_v, 0, sizeof(th_v));
memset(&p, 0, sizeof(p));
@ -425,7 +426,7 @@ static int DetectHttpMethodSigTest01(void)
goto end;
}
HtpState *http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
if (http_state == NULL) {
SCLogDebug("no http state: ");
goto end;
@ -443,6 +444,7 @@ static int DetectHttpMethodSigTest01(void)
result = 1;
end:
if (http_state != NULL) HTPStateFree(http_state);
if (de_ctx != NULL) SigGroupCleanup(de_ctx);
if (de_ctx != NULL) SigCleanSignatures(de_ctx);
if (de_ctx != NULL) DetectEngineCtxFree(de_ctx);
@ -465,7 +467,8 @@ static int DetectHttpMethodSigTest02(void)
Packet p;
Signature *s = NULL;
ThreadVars th_v;
DetectEngineThreadCtx *det_ctx;
DetectEngineThreadCtx *det_ctx = NULL;
HtpState *http_state = NULL;
memset(&th_v, 0, sizeof(th_v));
memset(&p, 0, sizeof(p));
@ -520,7 +523,7 @@ static int DetectHttpMethodSigTest02(void)
goto end;
}
HtpState *http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
if (http_state == NULL) {
SCLogDebug("no http state: ");
goto end;
@ -538,8 +541,10 @@ static int DetectHttpMethodSigTest02(void)
result = 1;
end:
if (http_state != NULL) HTPStateFree(http_state);
if (de_ctx != NULL) SigGroupCleanup(de_ctx);
if (de_ctx != NULL) SigCleanSignatures(de_ctx);
if (det_ctx != NULL) DetectEngineThreadCtxDeinit(&th_v, (void *) det_ctx);
if (de_ctx != NULL) DetectEngineCtxFree(de_ctx);
StreamL7DataPtrFree(&ssn);
@ -559,6 +564,7 @@ static int DetectHttpMethodSigTest03(void)
Signature *s = NULL;
ThreadVars th_v;
DetectEngineThreadCtx *det_ctx;
HtpState *http_state = NULL;
memset(&th_v, 0, sizeof(th_v));
memset(&p, 0, sizeof(p));
@ -605,7 +611,7 @@ static int DetectHttpMethodSigTest03(void)
goto end;
}
HtpState *http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
if (http_state == NULL) {
SCLogDebug("no http state: ");
goto end;
@ -620,6 +626,7 @@ static int DetectHttpMethodSigTest03(void)
result = 1;
end:
if (http_state != NULL) HTPStateFree(http_state);
if (de_ctx != NULL) SigGroupCleanup(de_ctx);
if (de_ctx != NULL) SigCleanSignatures(de_ctx);
if (de_ctx != NULL) DetectEngineCtxFree(de_ctx);

@ -142,7 +142,7 @@ DetectIcmpIdData *DetectIcmpIdParse (char *icmpidstr) {
substr[i-1] = (char *)str_ptr;
}
iid = malloc(sizeof(DetectIcmpIdData));
iid = SCMalloc(sizeof(DetectIcmpIdData));
if (iid == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
@ -163,13 +163,13 @@ DetectIcmpIdData *DetectIcmpIdParse (char *icmpidstr) {
ByteExtractStringUint16(&iid->id, 10, 0, substr[1]);
for (i = 0; i < 3; i++) {
if (substr[i] != NULL) free(substr[i]);
if (substr[i] != NULL) SCFree(substr[i]);
}
return iid;
error:
for (i = 0; i < 3; i++) {
if (substr[i] != NULL) free(substr[i]);
if (substr[i] != NULL) SCFree(substr[i]);
}
if (iid != NULL) DetectIcmpIdFree(iid);
return NULL;
@ -206,7 +206,7 @@ int DetectIcmpIdSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
error:
if (iid != NULL) DetectIcmpIdFree(iid);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -218,7 +218,7 @@ error:
*/
void DetectIcmpIdFree (void *ptr) {
DetectIcmpIdData *iid = (DetectIcmpIdData *)ptr;
free(iid);
SCFree(iid);
}
#ifdef UNITTESTS

@ -139,7 +139,7 @@ DetectIcmpSeqData *DetectIcmpSeqParse (char *icmpseqstr) {
substr[i-1] = (char *)str_ptr;
}
iseq = malloc(sizeof(DetectIcmpSeqData));
iseq = SCMalloc(sizeof(DetectIcmpSeqData));
if (iseq == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
@ -162,14 +162,14 @@ DetectIcmpSeqData *DetectIcmpSeqParse (char *icmpseqstr) {
ByteExtractStringUint16(&iseq->seq, 10, 0, substr[1]);
for (i = 0; i < 3; i++) {
if (substr[i] != NULL) free(substr[i]);
if (substr[i] != NULL) SCFree(substr[i]);
}
return iseq;
error:
for (i = 0; i < 3; i++) {
if (substr[i] != NULL) free(substr[i]);
if (substr[i] != NULL) SCFree(substr[i]);
}
if (iseq != NULL) DetectIcmpSeqFree(iseq);
return NULL;
@ -206,7 +206,7 @@ int DetectIcmpSeqSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
error:
if (iseq != NULL) DetectIcmpSeqFree(iseq);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -218,7 +218,7 @@ error:
*/
void DetectIcmpSeqFree (void *ptr) {
DetectIcmpSeqData *iseq = (DetectIcmpSeqData *)ptr;
free(iseq);
SCFree(iseq);
}
#ifdef UNITTESTS

@ -140,7 +140,7 @@ DetectICodeData *DetectICodeParse(char *icodestr) {
args[i-1] = (char *)str_ptr;
}
icd = malloc(sizeof(DetectICodeData));
icd = SCMalloc(sizeof(DetectICodeData));
if (icd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
@ -180,13 +180,13 @@ DetectICodeData *DetectICodeParse(char *icodestr) {
}
for (i = 0; i < (ret-1); i++) {
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
return icd;
error:
for (i = 0; i < (ret-1); i++) {
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
if (icd != NULL) DetectICodeFree(icd);
return NULL;
@ -223,7 +223,7 @@ int DetectICodeSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *i
error:
if (icd != NULL) DetectICodeFree(icd);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -234,7 +234,7 @@ error:
*/
void DetectICodeFree(void *ptr) {
DetectICodeData *icd = (DetectICodeData *)ptr;
free(icd);
SCFree(icd);
}
#ifdef UNITTESTS

@ -144,13 +144,13 @@ DetectIdData *DetectIdParse (char *idstr)
}
/* We have a correct id option */
id_d = malloc(sizeof(DetectIdData));
id_d = SCMalloc(sizeof(DetectIdData));
if (id_d == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
}
orig = strdup((char*)str_ptr);
orig = SCStrdup((char*)str_ptr);
tmp_str=orig;
/* Let's see if we need to scape "'s */
if (tmp_str[0] == '"')
@ -167,12 +167,12 @@ DetectIdData *DetectIdParse (char *idstr)
"the range %u - %u",
DETECT_IPID_MIN, DETECT_IPID_MAX);
free(orig);
SCFree(orig);
goto error;
}
id_d->id = temp;
free(orig);
SCFree(orig);
SCLogDebug("detect-id: will look for ip_id: %u\n", id_d->id);
}
@ -221,7 +221,7 @@ int DetectIdSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
error:
if (id_d != NULL) DetectIdFree(id_d);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -233,7 +233,7 @@ error:
*/
void DetectIdFree(void *ptr) {
DetectIdData *id_d = (DetectIdData *)ptr;
free(id_d);
SCFree(id_d);
}
#ifdef UNITTESTS /* UNITTESTS */

@ -138,7 +138,7 @@ DetectIpOptsData *DetectIpOptsParse (char *rawstr)
if(found == 0)
goto error;
de = malloc(sizeof(DetectIpOptsData));
de = SCMalloc(sizeof(DetectIpOptsData));
if (de == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
@ -149,7 +149,7 @@ DetectIpOptsData *DetectIpOptsParse (char *rawstr)
return de;
error:
if (de) free(de);
if (de) SCFree(de);
return NULL;
}
@ -185,8 +185,8 @@ int DetectIpOptsSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
return 0;
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return -1;
}
@ -198,7 +198,7 @@ error:
*/
void DetectIpOptsFree(void *de_ptr) {
DetectIpOptsData *de = (DetectIpOptsData *)de_ptr;
if(de) free(de);
if(de) SCFree(de);
}
/*
@ -281,8 +281,8 @@ int IpOptsTestParse03 (void) {
return 1;
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 0;
}
@ -327,8 +327,8 @@ int IpOptsTestParse04 (void) {
return 1;
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return 0;
}
#endif /* UNITTESTS */

@ -108,7 +108,7 @@ static DetectIPProtoData *DetectIPProtoParse(const char *optstr)
}
/* Initialize the data */
data = malloc(sizeof(DetectIPProtoData));
data = SCMalloc(sizeof(DetectIPProtoData));
if (data == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
@ -138,15 +138,15 @@ static DetectIPProtoData *DetectIPProtoParse(const char *optstr)
}
for (i = 0; i < (ret - 1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
return data;
error:
for (i = 0; i < (ret - 1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
if (data != NULL) free(data);
if (data != NULL) SCFree(data);
return NULL;
}
@ -213,7 +213,7 @@ static int DetectIPProtoSetup(DetectEngineCtx *de_ctx, Signature *s,
ret = 0;
cleanup:
if (data != NULL) free(data);
if (data != NULL) SCFree(data);
return ret;
}
@ -272,7 +272,7 @@ static int DetectIPProtoTestParse01(void) {
result = 1;
}
if (data) free(data);
if (data) SCFree(data);
return result;
}
@ -288,7 +288,7 @@ static int DetectIPProtoTestParse02(void) {
result = 1;
}
if (data) free(data);
if (data) SCFree(data);
return result;
}
@ -333,7 +333,7 @@ static int DetectIPProtoTestSetup01(void) {
result = 1;
cleanup:
if (data) free(data);
if (data) SCFree(data);
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineCtxFree(de_ctx);
@ -375,7 +375,7 @@ static int DetectIPProtoTestSetup02(void) {
result = 1;
cleanup:
if (data) free(data);
if (data) SCFree(data);
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineCtxFree(de_ctx);
@ -418,7 +418,7 @@ static int DetectIPProtoTestSetup03(void) {
result = 1;
cleanup:
if (data) free(data);
if (data) SCFree(data);
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineCtxFree(de_ctx);
@ -465,7 +465,7 @@ static int DetectIPProtoTestSetup04(void) {
result = 1;
cleanup:
if (data) free(data);
if (data) SCFree(data);
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineCtxFree(de_ctx);
@ -509,7 +509,7 @@ static int DetectIPProtoTestSetup05(void) {
result = 1;
cleanup:
if (data) free(data);
if (data) SCFree(data);
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineCtxFree(de_ctx);

@ -150,7 +150,7 @@ DetectIsdataatData *DetectIsdataatParse (char *isdataatstr)
args[2] = (char *)str_ptr;
}
idad = malloc(sizeof(DetectIsdataatData));
idad = SCMalloc(sizeof(DetectIsdataatData));
if (idad == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
@ -163,8 +163,8 @@ DetectIsdataatData *DetectIsdataatParse (char *isdataatstr)
if (ByteExtractStringUint16(&idad->dataat, 10,
strlen(args[0]), args[0]) < 0 ) {
SCLogError(SC_ERR_INVALID_VALUE, "isdataat out of range");
free(idad);
idad=NULL;
SCFree(idad);
idad = NULL;
goto error;
}
} else {
@ -179,7 +179,7 @@ DetectIsdataatData *DetectIsdataatParse (char *isdataatstr)
}
for (i = 0; i < (ret -1); i++) {
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
return idad;
@ -189,7 +189,7 @@ DetectIsdataatData *DetectIsdataatParse (char *isdataatstr)
error:
for (i = 0; i < (ret -1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
if (idad != NULL) DetectIsdataatFree(idad);
@ -266,7 +266,7 @@ int DetectIsdataatSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, cha
error:
if (idad != NULL) DetectIsdataatFree(idad);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -278,7 +278,7 @@ error:
*/
void DetectIsdataatFree(void *ptr) {
DetectIsdataatData *idad = (DetectIsdataatData *)ptr;
free(idad);
SCFree(idad);
}

@ -140,7 +140,7 @@ DetectITypeData *DetectITypeParse(char *itypestr) {
args[i-1] = (char *)str_ptr;
}
itd = malloc(sizeof(DetectITypeData));
itd = SCMalloc(sizeof(DetectITypeData));
if (itd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
goto error;
@ -180,13 +180,13 @@ DetectITypeData *DetectITypeParse(char *itypestr) {
}
for (i = 0; i < (ret-1); i++) {
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
return itd;
error:
for (i = 0; i < (ret-1); i++) {
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
if (itd != NULL) DetectITypeFree(itd);
return NULL;
@ -223,7 +223,7 @@ int DetectITypeSetup(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *i
error:
if (itd != NULL) DetectITypeFree(itd);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -234,7 +234,7 @@ error:
*/
void DetectITypeFree(void *ptr) {
DetectITypeData *itd = (DetectITypeData *)ptr;
free(itd);
SCFree(itd);
}
#ifdef UNITTESTS

@ -20,14 +20,14 @@ int DetectMetadataSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, cha
/* strip "'s */
if (rawstr[0] == '\"' && rawstr[strlen(rawstr)-1] == '\"') {
str = strdup(rawstr+1);
str = SCStrdup(rawstr+1);
str[strlen(rawstr)-2] = '\0';
dubbed = 1;
}
/* XXX */
if (dubbed) free(str);
if (dubbed) SCFree(str);
return 0;
}

@ -32,11 +32,11 @@ int DetectMsgSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *ms
/* strip "'s */
if (msgstr[0] == '\"' && msgstr[strlen(msgstr)-1] == '\"') {
str = strdup(msgstr+1);
str = SCStrdup(msgstr+1);
str[strlen(msgstr)-2] = '\0';
} else if (msgstr[1] == '\"' && msgstr[strlen(msgstr)-1] == '\"') {
/* XXX do this parsing in a better way */
str = strdup(msgstr+2);
str = SCStrdup(msgstr+2);
str[strlen(msgstr)-3] = '\0';
//printf("DetectMsgSetup: format hack applied: \'%s\'\n", str);
} else {
@ -93,17 +93,17 @@ int DetectMsgSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *ms
}
}
s->msg = malloc(len + 1);
s->msg = SCMalloc(len + 1);
if (s->msg == NULL)
goto error;
strlcpy(s->msg, str, len + 1);
free(str);
SCFree(str);
return 0;
error:
free(str);
SCFree(str);
return -1;
}

@ -32,7 +32,7 @@ int DetectOffsetSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
/* strip "'s */
if (offsetstr[0] == '\"' && offsetstr[strlen(offsetstr)-1] == '\"') {
str = strdup(offsetstr+1);
str = SCStrdup(offsetstr+1);
str[strlen(offsetstr)-2] = '\0';
dubbed = 1;
}
@ -42,14 +42,14 @@ int DetectOffsetSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
SigMatch *pm = DetectContentFindPrevApplicableSM(m);
if (pm == NULL) {
SCLogError(SC_ERR_OFFSET_MISSING_CONTENT, "offset needs a preceeding content option");
if (dubbed) free(str);
if (dubbed) SCFree(str);
return -1;
}
DetectContentData *cd = (DetectContentData *)pm->ctx;
if (cd == NULL) {
SCLogError(SC_ERR_INVALID_ARGUMENT, "invalid argument");
if (dubbed) free(str);
if (dubbed) SCFree(str);
return -1;
}
@ -68,7 +68,7 @@ int DetectOffsetSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
if (cd->flags & DETECT_CONTENT_IS_CHUNK)
DetectContentPropagateOffset(pm);
if (dubbed) free(str);
if (dubbed) SCFree(str);
return 0;
}

@ -64,7 +64,7 @@ uint32_t DbgGetDstPortAnyCnt(void) {
}
SigMatch *SigMatchAlloc(void) {
SigMatch *sm = malloc(sizeof(SigMatch));
SigMatch *sm = SCMalloc(sizeof(SigMatch));
if (sm == NULL)
return NULL;
@ -87,7 +87,7 @@ void SigMatchFree(SigMatch *sm) {
sigmatch_table[sm->type].Free(sm->ctx);
}
}
free(sm);
SCFree(sm);
}
/* Get the detection module by name */
@ -225,7 +225,7 @@ int SigParseOptions(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *op
SigTableElmt *st = NULL;
char *optname = NULL, *optvalue = NULL, *optmore = NULL;
const char **arr = calloc(OPTION_PARTS+1, sizeof(char *));
const char **arr = SCCalloc(OPTION_PARTS+1, sizeof(char *));
if (arr == NULL)
return -1;
@ -289,25 +289,25 @@ int SigParseOptions(DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *op
if (optname) pcre_free_substring(optname);
if (optvalue) pcre_free_substring(optvalue);
if (optstr) free(optstr);
if (optstr) SCFree(optstr);
//if (optmore) pcre_free_substring(optmore);
if (arr != NULL) free(arr);
if (arr != NULL) SCFree(arr);
return SigParseOptions(de_ctx, s, m, optmore);
}
if (optname) pcre_free_substring(optname);
if (optvalue) pcre_free_substring(optvalue);
if (optmore) pcre_free_substring(optmore);
if (optstr) free(optstr);
if (arr != NULL) free(arr);
if (optstr) SCFree(optstr);
if (arr != NULL) SCFree(arr);
return 0;
error:
if (optname) pcre_free_substring(optname);
if (optvalue) pcre_free_substring(optvalue);
if (optmore) pcre_free_substring(optmore);
if (optstr) free(optstr);
if (arr != NULL) free(arr);
if (optstr) SCFree(optstr);
if (arr != NULL) SCFree(arr);
return -1;
}
@ -451,7 +451,7 @@ int SigParseBasics(Signature *s, char *sigstr, char ***result, uint8_t addrs_dir
int ov[MAX_SUBSTRINGS];
int ret = 0, i = 0;
const char **arr = calloc(CONFIG_PARTS + 1, sizeof(char *));
const char **arr = SCCalloc(CONFIG_PARTS + 1, sizeof(char *));
if (arr == NULL)
return -1;
@ -506,7 +506,7 @@ error:
pcre_free_substring(arr[i - 1]);
}
free(arr);
SCFree(arr);
}
*result = NULL;
return -1;
@ -534,7 +534,7 @@ int SigParse(DetectEngineCtx *de_ctx, Signature *s, char *sigstr, uint8_t addrs_
/* we can have no options, so make sure we have them */
if (basics[CONFIG_OPTS] != NULL) {
ret = SigParseOptions(de_ctx, s, NULL, strdup(basics[CONFIG_OPTS]));
ret = SigParseOptions(de_ctx, s, NULL, SCStrdup(basics[CONFIG_OPTS]));
SCLogDebug("ret from SigParseOptions %d", ret);
}
@ -542,17 +542,17 @@ int SigParse(DetectEngineCtx *de_ctx, Signature *s, char *sigstr, uint8_t addrs_
if (basics != NULL) {
int i = 0;
while (basics[i] != NULL) {
free(basics[i]);
SCFree(basics[i]);
i++;
}
free(basics);
SCFree(basics);
}
SCReturnInt(ret);
}
Signature *SigAlloc (void) {
Signature *sig = malloc(sizeof(Signature));
Signature *sig = SCMalloc(sizeof(Signature));
if (sig == NULL)
return NULL;
@ -586,9 +586,9 @@ void SigFree(Signature *s) {
DetectPortCleanupList(s->dp);
}
if (s->msg != NULL) free(s->msg);
if (s->msg != NULL) SCFree(s->msg);
free(s);
SCFree(s);
}
/**
@ -1194,30 +1194,31 @@ end:
*/
int SigTestBidirec01 (void) {
Signature *sig = NULL;
int result = 0;
DetectEngineCtx *de_ctx = DetectEngineCtxInit();
if (de_ctx == NULL)
goto error;
goto end;
sig = DetectEngineAppendSig(de_ctx, "alert tcp 1.2.3.4 1024:65535 -> !1.2.3.4 any (msg:\"SigTestBidirec01\"; sid:1;)");
if (sig == NULL)
goto error;
goto end;
if (sig->next != NULL)
goto error;
goto end;
if (sig->flags & SIG_FLAG_BIDIREC)
goto error;
goto end;
if (de_ctx->signum != 1)
goto error;
goto end;
return 1;
error:
if (sig != NULL) {
if (sig->next != NULL)
SigFree(sig->next);
SigFree(sig);
result = 1;
end:
if (de_ctx != NULL) {
SigCleanSignatures(de_ctx);
SigGroupCleanup(de_ctx);
DetectEngineCtxFree(de_ctx);
}
if (de_ctx != NULL) DetectEngineCtxFree(de_ctx);
return 0;
return result;
}
/** \test Ensure that we set a bidirectional Signature correctly */
@ -1252,7 +1253,12 @@ int SigTestBidirec02 (void) {
result = 1;
end:
if (de_ctx != NULL) DetectEngineCtxFree(de_ctx);
if (de_ctx != NULL) {
SigCleanSignatures(de_ctx);
SigGroupCleanup(de_ctx);
DetectEngineCtxFree(de_ctx);
}
return result;
}
@ -1360,9 +1366,15 @@ int SigTestBidirec03 (void) {
uint32_t results[3] = {1, 1, 1};
result = UTHCheckPacketMatchResults(p, sids, results, 1);
FlowShutdown();
end:
if (de_ctx != NULL) DetectEngineCtxFree(de_ctx);
if (p != NULL) SCFree(p);
if (de_ctx != NULL) {
SigCleanSignatures(de_ctx);
SigGroupCleanup(de_ctx);
DetectEngineCtxFree(de_ctx);
}
FlowShutdown();
return result;
}

@ -413,7 +413,7 @@ DetectPcreData *DetectPcreParse (char *regexstr)
}
//printf("ret %" PRId32 " re \'%s\', op \'%s\'\n", ret, re, op);
pd = malloc(sizeof(DetectPcreData));
pd = SCMalloc(sizeof(DetectPcreData));
if (pd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
@ -490,7 +490,7 @@ DetectPcreData *DetectPcreParse (char *regexstr)
}
if(pd->sd == NULL)
pd->sd = (pcre_extra *) calloc(1,sizeof(pcre_extra));
pd->sd = (pcre_extra *) SCCalloc(1,sizeof(pcre_extra));
if(pd->sd) {
@ -519,16 +519,16 @@ DetectPcreData *DetectPcreParse (char *regexstr)
}
if (re != NULL) free(re);
if (op_ptr != NULL) free(op_ptr);
if (re != NULL) SCFree(re);
if (op_ptr != NULL) SCFree(op_ptr);
return pd;
error:
if (re != NULL) free(re);
if (op_ptr != NULL) free(op_ptr);
if (re != NULL) SCFree(re);
if (op_ptr != NULL) SCFree(op_ptr);
if (pd != NULL && pd->re != NULL) pcre_free(pd->re);
if (pd != NULL && pd->sd != NULL) pcre_free(pd->sd);
if (pd) free(pd);
if (pd) SCFree(pd);
return NULL;
}
@ -562,7 +562,7 @@ DetectPcreData *DetectPcreParseCapture(char *regexstr, DetectEngineCtx *de_ctx,
//printf("DetectPcreParseCapture: capture \'%s\'\n", capture_str_ptr ? capture_str_ptr : "NULL");
if (capture_str_ptr != NULL) {
pd->capname = strdup((char *)capture_str_ptr);
pd->capname = SCStrdup((char *)capture_str_ptr);
}
if (type_str_ptr != NULL) {
@ -585,8 +585,8 @@ DetectPcreData *DetectPcreParseCapture(char *regexstr, DetectEngineCtx *de_ctx,
return pd;
error:
if (pd != NULL && pd->capname != NULL) free(pd->capname);
if (pd) free(pd);
if (pd != NULL && pd->capname != NULL) SCFree(pd->capname);
if (pd) SCFree(pd);
return NULL;
}
@ -623,18 +623,18 @@ int DetectPcreSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *r
error:
if (pd != NULL) DetectPcreFree(pd);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
void DetectPcreFree(void *ptr) {
DetectPcreData *pd = (DetectPcreData *)ptr;
if (pd->capname != NULL) free(pd->capname);
if (pd->capname != NULL) SCFree(pd->capname);
if (pd->re != NULL) pcre_free(pd->re);
if (pd->sd != NULL) pcre_free(pd->sd);
free(pd);
SCFree(pd);
return;
}

@ -111,18 +111,18 @@ int DetectPktvarSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
SCLogDebug("varname %s, varcontent %s", varname, varcontent);
if (varcontent[0] == '\"' && varcontent[strlen(varcontent)-1] == '\"') {
str = strdup(varcontent+1);
str = SCStrdup(varcontent+1);
str[strlen(varcontent)-2] = '\0';
dubbed = 1;
}
len = strlen(str);
if (len == 0) {
if (dubbed) free(str);
if (dubbed) SCFree(str);
return -1;
}
cd = malloc(sizeof(DetectPktvarData));
cd = SCMalloc(sizeof(DetectPktvarData));
if (cd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
@ -185,14 +185,14 @@ int DetectPktvarSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
len = x;
}
cd->content = malloc(len);
cd->content = SCMalloc(len);
if (cd->content == NULL) {
free(cd);
if (dubbed) free(str);
SCFree(cd);
if (dubbed) SCFree(str);
return -1;
}
cd->name = strdup(varname);
cd->name = SCStrdup(varname);
memcpy(cd->content, str, len);
cd->content_len = len;
cd->flags = 0;
@ -208,13 +208,13 @@ int DetectPktvarSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
SigMatchAppend(s,m,sm);
if (dubbed) free(str);
if (dubbed) SCFree(str);
return 0;
error:
if (dubbed) free(str);
if (cd) free(cd);
if (sm) free(sm);
if (dubbed) SCFree(str);
if (cd) SCFree(cd);
if (sm) SCFree(sm);
return -1;
}

@ -20,14 +20,14 @@ int DetectReferenceSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, ch
/* strip "'s */
if (rawstr[0] == '\"' && rawstr[strlen(rawstr)-1] == '\"') {
str = strdup(rawstr+1);
str = SCStrdup(rawstr+1);
str[strlen(rawstr)-2] = '\0';
dubbed = 1;
}
/* XXX */
if (dubbed) free(str);
if (dubbed) SCFree(str);
return 0;
}

@ -2,6 +2,8 @@
#include "suricata-common.h"
#include "detect.h"
#include "util-debug.h"
#include "util-error.h"
int DetectRevSetup (DetectEngineCtx *, Signature *s, SigMatch *m, char *str);
@ -20,14 +22,14 @@ int DetectRevSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *ra
/* strip "'s */
if (rawstr[0] == '\"' && rawstr[strlen(rawstr)-1] == '\"') {
str = strdup(rawstr+1);
str = SCStrdup(rawstr+1);
str[strlen(rawstr)-2] = '\0';
dubbed = 1;
}
s->rev = (uint8_t)atoi(str);
if (dubbed) free(str);
if (dubbed) SCFree(str);
return 0;
}

@ -180,7 +180,7 @@ DetectRpcData *DetectRpcParse (char *rpcstr)
}
}
rd = malloc(sizeof(DetectRpcData));
rd = SCMalloc(sizeof(DetectRpcData));
if (rd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC ,"malloc failed");
goto error;
@ -226,13 +226,13 @@ DetectRpcData *DetectRpcParse (char *rpcstr)
}
}
for (i = 0; i < (ret -1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
return rd;
error:
for (i = 0; i < (ret -1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
if (rd != NULL) DetectRpcFree(rd);
return NULL;
@ -271,7 +271,7 @@ int DetectRpcSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *rp
error:
if (rd != NULL) DetectRpcFree(rd);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -283,7 +283,7 @@ error:
*/
void DetectRpcFree(void *ptr) {
DetectRpcData *rd = (DetectRpcData *)ptr;
free(rd);
SCFree(rd);
}
#ifdef UNITTESTS

@ -90,7 +90,7 @@ static int DetectSameipSetup(DetectEngineCtx *de_ctx, Signature *s,
error:
if (sm != NULL)
free(sm);
SCFree(sm);
return -1;
}

@ -84,7 +84,7 @@ static int DetectSeqSetup (DetectEngineCtx *de_ctx, Signature *s,
//printf("DetectSeqSetup: \'%s\'\n", optstr);
data = malloc(sizeof(DetectSeqData));
data = SCMalloc(sizeof(DetectSeqData));
if (data == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
@ -107,7 +107,7 @@ static int DetectSeqSetup (DetectEngineCtx *de_ctx, Signature *s,
return 0;
error:
if (data) free(data);
if (data) SCFree(data);
return -1;
}
@ -121,7 +121,7 @@ error:
static void DetectSeqFree(void *ptr)
{
DetectSeqData *data = (DetectSeqData *)ptr;
free(data);
SCFree(data);
}

@ -2,6 +2,8 @@
#include "suricata-common.h"
#include "detect.h"
#include "util-debug.h"
#include "util-error.h"
int DetectSidSetup (DetectEngineCtx *, Signature *s, SigMatch *m, char *sidstr);
@ -20,14 +22,14 @@ int DetectSidSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *si
/* strip "'s */
if (sidstr[0] == '\"' && sidstr[strlen(sidstr)-1] == '\"') {
str = strdup(sidstr+1);
str = SCStrdup(sidstr+1);
str[strlen(sidstr)-2] = '\0';
dubbed = 1;
}
s->id = (uint32_t)atoi(str);
if (dubbed) free(str);
if (dubbed) SCFree(str);
return 0;
}

@ -57,8 +57,8 @@ void DetectStreamSizeRegister(void) {
return;
error:
if (parse_regex != NULL) free(parse_regex);
if (parse_regex_study != NULL) free(parse_regex_study);
if (parse_regex != NULL) SCFree(parse_regex);
if (parse_regex_study != NULL) SCFree(parse_regex_study);
return;
}
@ -209,7 +209,7 @@ DetectStreamSizeData *DetectStreamSizeParse (char *streamstr) {
}
value = (char *)str_ptr;
sd = malloc(sizeof(DetectStreamSizeData));
sd = SCMalloc(sizeof(DetectStreamSizeData));
if (sd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
@ -269,15 +269,15 @@ DetectStreamSizeData *DetectStreamSizeParse (char *streamstr) {
goto error;
}
if (mode != NULL) free(mode);
if (arg != NULL) free(arg);
if (value != NULL) free(value);
if (mode != NULL) SCFree(mode);
if (arg != NULL) SCFree(arg);
if (value != NULL) SCFree(value);
return sd;
error:
if (mode != NULL) free(mode);
if (arg != NULL) free(arg);
if (value != NULL) free(value);
if (mode != NULL) SCFree(mode);
if (arg != NULL) SCFree(arg);
if (value != NULL) SCFree(value);
if (sd != NULL) DetectStreamSizeFree(sd);
return NULL;
@ -316,7 +316,7 @@ int DetectStreamSizeSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, c
error:
if (sd != NULL) DetectStreamSizeFree(sd);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -327,7 +327,7 @@ error:
*/
void DetectStreamSizeFree(void *ptr) {
DetectStreamSizeData *sd = (DetectStreamSizeData *)ptr;
free(sd);
SCFree(sd);
}
#ifdef UNITTESTS
@ -400,16 +400,19 @@ static int DetectStreamSizeParseTest03 (void) {
if (sd != NULL) {
if (!(sd->flags & STREAM_SIZE_CLIENT)) {
printf("sd->flags not STREAM_SIZE_CLIENT: ");
DetectStreamSizeFree(sd);
return 0;
}
if (sd->mode != DETECTSSIZE_GT) {
printf("sd->mode not DETECTSSIZE_GT: ");
DetectStreamSizeFree(sd);
return 0;
}
if (sd->ssize != 8) {
printf("sd->ssize is %"PRIu32", not 8: ", sd->ssize);
DetectStreamSizeFree(sd);
return 0;
}
} else {
@ -429,6 +432,7 @@ static int DetectStreamSizeParseTest03 (void) {
if (result == 0) {
printf("result 0 != 1: ");
}
DetectStreamSizeFree(sd);
return result;
}

@ -90,7 +90,7 @@ static DetectThresholdData *DetectThresholdParse (char *rawstr)
uint16_t pos = 0;
int i = 0;
copy_str = strdup(rawstr);
copy_str = SCStrdup(rawstr);
for(pos = 0, threshold_opt = strtok(copy_str,","); pos < strlen(copy_str) && threshold_opt != NULL; pos++, threshold_opt = strtok(NULL,",")) {
@ -105,7 +105,7 @@ static DetectThresholdData *DetectThresholdParse (char *rawstr)
}
if(copy_str)
free(copy_str);
SCFree(copy_str);
if(count_found != 1 || second_found != 1 || type_found != 1 || track_found != 1)
goto error;
@ -117,7 +117,7 @@ static DetectThresholdData *DetectThresholdParse (char *rawstr)
goto error;
}
de = malloc(sizeof(DetectThresholdData));
de = SCMalloc(sizeof(DetectThresholdData));
if (de == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
@ -161,15 +161,15 @@ static DetectThresholdData *DetectThresholdParse (char *rawstr)
}
for (i = 0; i < (ret - 1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
return de;
error:
for (i = 0; i < (ret - 1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
if (de) free(de);
if (de) SCFree(de);
return NULL;
}
@ -206,8 +206,8 @@ static int DetectThresholdSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch
return 0;
error:
if (de) free(de);
if (sm) free(sm);
if (de) SCFree(de);
if (sm) SCFree(sm);
return -1;
}
@ -219,7 +219,7 @@ error:
*/
static void DetectThresholdFree(void *de_ptr) {
DetectThresholdData *de = (DetectThresholdData *)de_ptr;
if (de) free(de);
if (de) SCFree(de);
}
/*
@ -522,9 +522,9 @@ static int DetectThresholdTestSig3(void) {
td = SigGetThresholdType(s,&p);
/* setup the Entry we use to search our hash with */
ste = malloc(sizeof(DetectThresholdEntry));
ste = SCMalloc(sizeof(DetectThresholdEntry));
if (ste == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed: %s", strerror(errno));
SCLogError(SC_ERR_MEM_ALLOC, "SCMalloc failed: %s", strerror(errno));
goto end;
}
memset(ste, 0x00, sizeof(ste));

@ -152,13 +152,13 @@ DetectTlsVersionData *DetectTlsVersionParse (char *str)
}
/* We have a correct id option */
tls = malloc(sizeof(DetectTlsVersionData));
tls = SCMalloc(sizeof(DetectTlsVersionData));
if (tls == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
}
orig = strdup((char*)str_ptr);
orig = SCStrdup((char*)str_ptr);
tmp_str=orig;
/* Let's see if we need to scape "'s */
if (tmp_str[0] == '"')
@ -180,7 +180,7 @@ DetectTlsVersionData *DetectTlsVersionParse (char *str)
tls->ver = temp;
free(orig);
SCFree(orig);
SCLogDebug("will look for tls %"PRIu8"", tls->ver);
}
@ -228,7 +228,7 @@ int DetectTlsVersionSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, c
error:
if (tls != NULL) DetectTlsVersionFree(tls);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -240,7 +240,7 @@ error:
*/
void DetectTlsVersionFree(void *ptr) {
DetectTlsVersionData *id_d = (DetectTlsVersionData *)ptr;
free(id_d);
SCFree(id_d);
}
#ifdef UNITTESTS /* UNITTESTS */

@ -55,8 +55,8 @@ void DetectTtlRegister(void) {
return;
error:
if (parse_regex != NULL) free(parse_regex);
if (parse_regex_study != NULL) free(parse_regex_study);
if (parse_regex != NULL) SCFree(parse_regex);
if (parse_regex_study != NULL) SCFree(parse_regex_study);
return;
}
@ -148,7 +148,7 @@ DetectTtlData *DetectTtlParse (char *ttlstr) {
arg3 = (char *) str_ptr;
SCLogDebug("Arg3 \"%s\"", arg3);
ttld = malloc(sizeof (DetectTtlData));
ttld = SCMalloc(sizeof (DetectTtlData));
if (ttld == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
@ -199,16 +199,16 @@ DetectTtlData *DetectTtlParse (char *ttlstr) {
break;
}
free(arg1);
free(arg2);
free(arg3);
SCFree(arg1);
SCFree(arg2);
SCFree(arg3);
return ttld;
error:
if (ttld) free(ttld);
if (arg1) free(arg1);
if (arg2) free(arg2);
if (arg3) free(arg3);
if (ttld) SCFree(ttld);
if (arg1) SCFree(arg1);
if (arg2) SCFree(arg2);
if (arg3) SCFree(arg3);
return NULL;
}
@ -245,7 +245,7 @@ int DetectTtlSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char *tt
error:
if (ttld != NULL) DetectTtlFree(ttld);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -256,7 +256,7 @@ error:
*/
void DetectTtlFree(void *ptr) {
DetectTtlData *ttld = (DetectTtlData *)ptr;
free(ttld);
SCFree(ttld);
}
#ifdef UNITTESTS
@ -410,7 +410,7 @@ static int DetectTtlParseTest06 (void) {
ttld = DetectTtlParse(" 1 = 2 ");
if (ttld == NULL)
res = 1;
if (ttld) free(ttld);
if (ttld) SCFree(ttld);
return res;
}
@ -428,7 +428,7 @@ static int DetectTtlParseTest07 (void) {
if (ttld == NULL)
res = 1;
if (ttld) free(ttld);
if (ttld) SCFree(ttld);
return res;
}
@ -461,7 +461,7 @@ static int DetectTtlSetpTest01(void) {
}
cleanup:
if (ttld) free(ttld);
if (ttld) SCFree(ttld);
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineCtxFree(de_ctx);

@ -72,14 +72,14 @@ uint32_t DetectUricontentMaxId(DetectEngineCtx *de_ctx)
/**
* \brief Free the stored http_uri in the given packet
* \param p pointer to the given packet whose uri has to be freed
* \param p pointer to the given packet whose uri has to be SCFreed
*/
void PktHttpUriFree(Packet *p)
{
int i;
for (i = 0; i < p->http_uri.cnt; i++) {
free(p->http_uri.raw[i]);
SCFree(p->http_uri.raw[i]);
p->http_uri.raw[i] = NULL;
}
p->http_uri.cnt = 0;
@ -277,17 +277,17 @@ DetectUricontentData *DoDetectUricontentSetup (char * contentstr)
uint16_t pos = 0;
uint16_t slen = 0;
if ((temp = strdup(contentstr)) == NULL)
if ((temp = SCStrdup(contentstr)) == NULL)
goto error;
if (strlen(temp) == 0) {
free(temp);
SCFree(temp);
return NULL;
}
cd = malloc(sizeof(DetectUricontentData));
cd = SCMalloc(sizeof(DetectUricontentData));
if (cd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
SCLogError(SC_ERR_MEM_ALLOC, "SCMalloc failed");
goto error;
}
memset(cd,0,sizeof(DetectUricontentData));
@ -305,15 +305,15 @@ DetectUricontentData *DoDetectUricontentSetup (char * contentstr)
}
if (temp[pos] == '\"' && temp[strlen(temp)-1] == '\"') {
if ((str = strdup(temp + pos + 1)) == NULL)
if ((str = SCStrdup(temp + pos + 1)) == NULL)
goto error;
str[strlen(temp) - pos - 2] = '\0';
} else {
if ((str = strdup(temp + pos)) == NULL)
if ((str = SCStrdup(temp + pos)) == NULL)
goto error;
}
free(temp);
SCFree(temp);
temp = NULL;
len = strlen(str);
@ -378,10 +378,10 @@ DetectUricontentData *DoDetectUricontentSetup (char * contentstr)
SCLogDebug("len %" PRIu32 "", len);
cd->uricontent = malloc(len);
cd->uricontent = SCMalloc(len);
if (cd->uricontent == NULL) {
free(cd);
free(str);
SCFree(cd);
SCFree(str);
return NULL;;
}
@ -393,12 +393,12 @@ DetectUricontentData *DoDetectUricontentSetup (char * contentstr)
cd->distance = 0;
cd->flags = 0;
free(str);
SCFree(str);
return cd;
error:
free(str);
if (cd) free(cd);
SCFree(str);
if (cd) SCFree(cd);
return NULL;
}
@ -445,7 +445,7 @@ int DetectUricontentSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
SCReturnInt(0);
error:
if (cd) free(cd);
if (cd) SCFree(cd);
SCReturnInt(-1);
}
@ -651,6 +651,7 @@ end:
static int HTTPUriTest02(void) {
int result = 1;
Flow f;
HtpState *htp_state = NULL;
uint8_t httpbuf1[] = "GET /%2e%2e/images.gif HTTP/1.1\r\nHost: www.ExA"
"mPlE.cOM\r\n\r\n";
uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */
@ -666,7 +667,7 @@ static int HTTPUriTest02(void) {
r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOSERVER|STREAM_START|
STREAM_EOF, httpbuf1, httplen1);
HtpState *htp_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
htp_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
if (htp_state == NULL) {
printf("no http state: ");
result = 0;
@ -707,6 +708,8 @@ static int HTTPUriTest02(void) {
end:
StreamL7DataPtrFree(&ssn);
StreamTcpFreeConfig(TRUE);
if (htp_state == NULL)
HTPStateFree(htp_state);
return result;
}
@ -770,6 +773,8 @@ static int HTTPUriTest03(void) {
end:
StreamL7DataPtrFree(&ssn);
StreamTcpFreeConfig(TRUE);
if (htp_state == NULL)
HTPStateFree(htp_state);
return result;
}
@ -835,6 +840,8 @@ static int HTTPUriTest04(void) {
end:
StreamL7DataPtrFree(&ssn);
StreamTcpFreeConfig(TRUE);
if (htp_state == NULL)
HTPStateFree(htp_state);
return result;
}
@ -875,7 +882,9 @@ int DetectUriSigTest01(void)
}
end:
if (de_ctx != NULL) SigGroupCleanup(de_ctx);
if (de_ctx != NULL) SigCleanSignatures(de_ctx);
if (det_ctx != NULL) DetectEngineThreadCtxDeinit(&th_v, det_ctx);
if (de_ctx != NULL) DetectEngineCtxFree(de_ctx);
return result;
}
@ -892,6 +901,7 @@ static int DetectUriSigTest02(void) {
Signature *s = NULL;
ThreadVars th_v;
DetectEngineThreadCtx *det_ctx;
HtpState *http_state = NULL;
memset(&th_v, 0, sizeof(th_v));
memset(&p, 0, sizeof(p));
@ -950,7 +960,7 @@ static int DetectUriSigTest02(void) {
goto end;
}
HtpState *http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
if (http_state == NULL) {
printf("no http state: ");
goto end;
@ -972,7 +982,10 @@ static int DetectUriSigTest02(void) {
result = 1;
end:
if (http_state != NULL) HTPStateFree(http_state);
if (de_ctx != NULL) SigCleanSignatures(de_ctx);
if (de_ctx != NULL) SigGroupCleanup(de_ctx);
if (det_ctx != NULL) DetectEngineThreadCtxDeinit(&th_v, det_ctx);
if (de_ctx != NULL) DetectEngineCtxFree(de_ctx);
StreamL7DataPtrFree(&ssn);
@ -985,6 +998,7 @@ end:
static int DetectUriSigTest03(void) {
int result = 0;
Flow f;
HtpState *http_state = NULL;
uint8_t httpbuf1[] = "POST /one HTTP/1.0\r\nUser-Agent: Mozilla/1.0\r\nCookie:"
" hellocatch\r\n\r\n";
uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */
@ -1062,7 +1076,7 @@ static int DetectUriSigTest03(void) {
goto end;
}
HtpState *http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
http_state = ssn.aldata[AlpGetStateIdx(ALPROTO_HTTP)];
if (http_state == NULL) {
printf("no http state: ");
goto end;
@ -1084,7 +1098,10 @@ static int DetectUriSigTest03(void) {
result = 1;
end:
if (http_state != NULL) HTPStateFree(http_state);
if (de_ctx != NULL) SigGroupCleanup(de_ctx);
if (de_ctx != NULL) SigCleanSignatures(de_ctx);
if (det_ctx != NULL) DetectEngineThreadCtxDeinit(&th_v, det_ctx);
if (de_ctx != NULL) DetectEngineCtxFree(de_ctx);
StreamL7DataPtrFree(&ssn);

@ -64,8 +64,8 @@ void DetectUrilenRegister(void)
return;
error:
if (parse_regex != NULL) free(parse_regex);
if (parse_regex_study != NULL) free(parse_regex_study);
if (parse_regex != NULL) SCFree(parse_regex);
if (parse_regex_study != NULL) SCFree(parse_regex_study);
return;
}
@ -191,9 +191,9 @@ DetectUrilenData *DetectUrilenParse (char *urilenstr)
arg4 = (char *) str_ptr;
SCLogDebug("Arg4 \"%s\"", arg4);
urilend = malloc(sizeof (DetectUrilenData));
urilend = SCMalloc(sizeof (DetectUrilenData));
if (urilend == NULL) {
SCLogDebug("DetectUrilenSetup malloc failed");
SCLogDebug("DetectUrilenSetup SCMalloc failed");
goto error;
}
urilend->urilen1 = 0;
@ -238,18 +238,18 @@ DetectUrilenData *DetectUrilenParse (char *urilenstr)
}
}
free(arg1);
free(arg2);
free(arg3);
free(arg4);
SCFree(arg1);
SCFree(arg2);
SCFree(arg3);
SCFree(arg4);
return urilend;
error:
if (urilend) free(urilend);
if (arg1) free(arg1);
if (arg2) free(arg2);
if (arg3) free(arg3);
if (arg4) free(arg4);
if (urilend) SCFree(urilend);
if (arg1) SCFree(arg1);
if (arg2) SCFree(arg2);
if (arg3) SCFree(arg3);
if (arg4) SCFree(arg4);
return NULL;
}
@ -291,7 +291,7 @@ int DetectUrilenSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m,
error:
if (urilend != NULL) DetectUrilenFree(urilend);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
SCReturnInt(-1);
}
@ -303,7 +303,7 @@ error:
void DetectUrilenFree(void *ptr)
{
DetectUrilenData *urilend = (DetectUrilenData *)ptr;
free(urilend);
SCFree(urilend);
}
#ifdef UNITTESTS
@ -452,7 +452,7 @@ static int DetectUrilenSetpTest01(void) {
}
cleanup:
if (urilend) free(urilend);
if (urilend) SCFree(urilend);
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineCtxFree(de_ctx);

@ -118,7 +118,7 @@ DetectWindowData *DetectWindowParse(char *windowstr) {
goto error;
}
wd = malloc(sizeof(DetectWindowData));
wd = SCMalloc(sizeof(DetectWindowData));
if (wd == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
goto error;
@ -155,13 +155,13 @@ DetectWindowData *DetectWindowParse(char *windowstr) {
int i = 0;
for (i = 0; i < (ret -1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
return wd;
error:
for (i = 0; i < (ret -1); i++){
if (args[i] != NULL) free(args[i]);
if (args[i] != NULL) SCFree(args[i]);
}
if (wd != NULL) DetectWindowFree(wd);
return NULL;
@ -202,7 +202,7 @@ int DetectWindowSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
error:
if (wd != NULL) DetectWindowFree(wd);
if (sm != NULL) free(sm);
if (sm != NULL) SCFree(sm);
return -1;
}
@ -214,7 +214,7 @@ error:
*/
void DetectWindowFree(void *ptr) {
DetectWindowData *wd = (DetectWindowData *)ptr;
free(wd);
SCFree(wd);
}
#ifdef UNITTESTS /* UNITTESTS */

@ -34,7 +34,7 @@ int DetectWithinSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
/* strip "'s */
if (withinstr[0] == '\"' && withinstr[strlen(withinstr)-1] == '\"') {
str = strdup(withinstr+1);
str = SCStrdup(withinstr+1);
str[strlen(withinstr)-2] = '\0';
dubbed = 1;
}
@ -91,10 +91,10 @@ int DetectWithinSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
goto error;
}
if (dubbed) free(str);
if (dubbed) SCFree(str);
return 0;
error:
if (dubbed) free(str);
if (dubbed) SCFree(str);
return -1;
}

@ -211,16 +211,16 @@ char *DetectLoadCompleteSigPath(char *sig_file)
SCLogDebug("Default path: %s", defaultpath);
size_t path_len = sizeof(char) * (strlen(defaultpath) +
strlen(sig_file) + 2);
path = malloc(path_len);
path = SCMalloc(path_len);
strlcpy(path, defaultpath, path_len);
if (path[strlen(path) - 1] != '/')
strlcat(path, "/", path_len);
strlcat(path, sig_file, path_len);
} else {
path = strdup(sig_file);
path = SCStrdup(sig_file);
}
} else {
path = strdup(sig_file);
path = SCStrdup(sig_file);
}
return path;
}
@ -341,7 +341,7 @@ int SigLoadSignatures (DetectEngineCtx *de_ctx, char *sig_file)
exit(EXIT_FAILURE);
}
}
free(sfile);
SCFree(sfile);
}
}
@ -946,7 +946,7 @@ int SigAddressPrepareStage1(DetectEngineCtx *de_ctx) {
de_ctx->sig_array_len = DetectEngineGetMaxSigId(de_ctx);
de_ctx->sig_array_size = (de_ctx->sig_array_len * sizeof(Signature *));
de_ctx->sig_array = (Signature **)malloc(de_ctx->sig_array_size);
de_ctx->sig_array = (Signature **)SCMalloc(de_ctx->sig_array_size);
if (de_ctx->sig_array == NULL)
goto error;
memset(de_ctx->sig_array,0,de_ctx->sig_array_size);
@ -3032,6 +3032,8 @@ static int SigTest01Real (int mpm_type) {
}
end:
if (p != NULL)
UTHFreePacket(p);
return result;
}
@ -3056,7 +3058,9 @@ static int SigTest02Real (int mpm_type) {
uint16_t buflen = strlen((char *)buf);
Packet *p = UTHBuildPacket( buf, buflen, IPPROTO_TCP);
char sig[] = "alert tcp any any -> any any (msg:\"HTTP TEST\"; content:\"Host: one.example.org\"; offset:20; depth:41; sid:1;)";
return UTHPacketMatchSigMpm(p, sig, mpm_type);
int ret = UTHPacketMatchSigMpm(p, sig, mpm_type);
UTHFreePacket(p);
return ret;
}
static int SigTest02B2g (void) {
@ -3424,15 +3428,16 @@ static int SigTest07Real (int mpm_type) {
else
result = 1;
end:
StreamL7DataPtrFree(&ssn);
StreamTcpFreeConfig(TRUE);
AppLayerParserCleanupState(&ssn);
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
//PatternMatchDestroy(mpm_ctx);
DetectEngineCtxFree(de_ctx);
end:
StreamL7DataPtrFree(&ssn);
StreamTcpFreeConfig(TRUE);
return result;
}
static int SigTest07B2g (void) {
@ -3519,6 +3524,7 @@ static int SigTest08Real (int mpm_type) {
PacketAlertCheck(&p, 1) ? "OK" : "FAIL",
PacketAlertCheck(&p, 2) ? "OK" : "FAIL");
AppLayerParserCleanupState(&ssn);
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
@ -3610,6 +3616,7 @@ static int SigTest09Real (int mpm_type) {
else
result = 0;
AppLayerParserCleanupState(&ssn);
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
@ -3695,6 +3702,7 @@ static int SigTest10Real (int mpm_type) {
else
result = 1;
AppLayerParserCleanupState(&ssn);
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
@ -3774,6 +3782,7 @@ static int SigTest11Real (int mpm_type) {
else
result = 0;
AppLayerParserCleanupState(&ssn);
SigGroupCleanup(de_ctx);
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
DetectEngineCtxFree(de_ctx);
@ -3837,12 +3846,15 @@ static int SigTest12Real (int mpm_type) {
else
result = 0;
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
//PatternMatchDestroy(mpm_ctx);
DetectEngineCtxFree(de_ctx);
end:
if (de_ctx != NULL) {
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
if (det_ctx != NULL)
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
//PatternMatchDestroy(mpm_ctx);
DetectEngineCtxFree(de_ctx);
}
return result;
}
static int SigTest12B2g (void) {
@ -4163,16 +4175,19 @@ static int SigTest17Real (int mpm_type) {
PrintRawUriFp(stdout, pv_hn->value, pv_hn->value_len);
printf("\" != \"one.example.org\": ");
}
PktVarFree(pv_hn);
} else {
printf("Pkt var http_host not captured: ");
}
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
DetectEngineCtxFree(de_ctx);
end:
if (de_ctx != NULL) {
SigGroupCleanup(de_ctx);
SigCleanSignatures(de_ctx);
if (det_ctx != NULL)
DetectEngineThreadCtxDeinit(&th_v, (void *)det_ctx);
DetectEngineCtxFree(de_ctx);
}
ConfDeInit();
ConfRestoreContextBackup();
return result;

@ -11,6 +11,8 @@
#include "util-mpm.h"
#include "util-hash.h"
#include "util-hashlist.h"
#include "util-debug.h"
#include "util-error.h"
#include "detect-threshold.h"

@ -43,7 +43,7 @@ static FlowAlertSid *FlowAlertSidGet(Flow *f, uint32_t sid) {
static void FlowAlertSidAdd(Flow *f, uint32_t sid) {
FlowAlertSid *fb = FlowAlertSidGet(f, sid);
if (fb == NULL) {
fb = malloc(sizeof(FlowAlertSid));
fb = SCMalloc(sizeof(FlowAlertSid));
if (fb == NULL)
return;
@ -153,7 +153,7 @@ void FlowAlertSidFree(FlowAlertSid *fb) {
if (fb == NULL)
return;
free(fb);
SCFree(fb);
#ifdef FLOWALERTSID_STATS
SCMutexLock(&flowbits_mutex);

@ -19,6 +19,7 @@
#include "flow-private.h"
#include "detect.h"
#include "util-var.h"
#include "util-debug.h"
#include "util-unittest.h"
/* get the flowbit with idx from the flow */
@ -37,7 +38,7 @@ static FlowBit *FlowBitGet(Flow *f, uint16_t idx) {
static void FlowBitAdd(Flow *f, uint16_t idx) {
FlowBit *fb = FlowBitGet(f, idx);
if (fb == NULL) {
fb = malloc(sizeof(FlowBit));
fb = SCMalloc(sizeof(FlowBit));
if (fb == NULL)
return;
@ -144,7 +145,7 @@ void FlowBitFree(FlowBit *fb) {
if (fb == NULL)
return;
free(fb);
SCFree(fb);
#ifdef FLOWBITS_STATS
SCMutexLock(&flowbits_mutex);

@ -11,7 +11,7 @@
#include <string.h>
FlowQueue *FlowQueueNew() {
FlowQueue *q = (FlowQueue *)malloc(sizeof(FlowQueue));
FlowQueue *q = (FlowQueue *)SCMalloc(sizeof(FlowQueue));
if (q == NULL) {
SCLogError(SC_ERR_MEM_ALLOC,"Error allocating flow queue");
exit(EXIT_SUCCESS);

@ -21,7 +21,7 @@ Flow *FlowAlloc(void)
SCMutexUnlock(&flow_memuse_mutex);
return NULL;
}
f = malloc(sizeof(Flow));
f = SCMalloc(sizeof(Flow));
if (f == NULL) {
SCMutexUnlock(&flow_memuse_mutex);
return NULL;
@ -47,7 +47,7 @@ void FlowFree(Flow *f)
flow_memuse -= sizeof(Flow);
SCMutexUnlock(&flow_memuse_mutex);
free(f);
SCFree(f);
}
/**

@ -17,7 +17,7 @@
/* puts a new value into a flowvar */
void FlowVarUpdateStr(FlowVar *fv, uint8_t *value, uint16_t size) {
if (fv->data.fv_str.value) free(fv->data.fv_str.value);
if (fv->data.fv_str.value) SCFree(fv->data.fv_str.value);
fv->data.fv_str.value = value;
fv->data.fv_str.value_len = size;
}
@ -49,7 +49,7 @@ void FlowVarAddStr(Flow *f, uint8_t idx, uint8_t *value, uint16_t size) {
FlowVar *fv = FlowVarGet(f, idx);
if (fv == NULL) {
fv = malloc(sizeof(FlowVar));
fv = SCMalloc(sizeof(FlowVar));
if (fv == NULL)
goto out;
@ -77,7 +77,7 @@ void FlowVarAddInt(Flow *f, uint8_t idx, uint32_t value) {
FlowVar *fv = FlowVarGet(f, idx);
if (fv == NULL) {
fv = malloc(sizeof(FlowVar));
fv = SCMalloc(sizeof(FlowVar));
if (fv == NULL)
goto out;
@ -102,9 +102,9 @@ void FlowVarFree(FlowVar *fv) {
if (fv->datatype == FLOWVAR_TYPE_STR) {
if (fv->data.fv_str.value != NULL)
free(fv->data.fv_str.value);
SCFree(fv->data.fv_str.value);
}
free(fv);
SCFree(fv);
}
void FlowVarPrint(GenericVar *gv) {

@ -483,9 +483,9 @@ void FlowInitConfig (char quiet)
flow_config.hash_size, flow_config.prealloc);
/* alloc hash memory */
flow_hash = calloc(flow_config.hash_size, sizeof(FlowBucket));
flow_hash = SCCalloc(flow_config.hash_size, sizeof(FlowBucket));
if (flow_hash == NULL) {
printf("calloc failed %s\n", strerror(errno));
printf("SCCalloc failed %s\n", strerror(errno));
exit(1);
}
uint32_t i = 0;
@ -598,7 +598,7 @@ void FlowShutdown(void) {
}
if (flow_hash != NULL) {
free(flow_hash);
SCFree(flow_hash);
flow_hash = NULL;
}
flow_memuse -= flow_config.hash_size * sizeof(FlowBucket);

@ -1,8 +1,9 @@
#include "suricata-common.h"
#include "util-debug.h"
#include "host.h"
Host *HostAlloc(void) {
Host *h = malloc(sizeof(Host));
Host *h = SCMalloc(sizeof(Host));
if (h == NULL)
goto error;
@ -13,7 +14,7 @@ error:
}
void HostFree(Host *h) {
free(h);
SCFree(h);
}
Host *HostNew(Address *a) {

@ -326,7 +326,7 @@ TmEcode LogHttpLog (ThreadVars *tv, Packet *p, void *data, PacketQueue *pq)
TmEcode LogHttpLogThreadInit(ThreadVars *t, void *initdata, void **data)
{
LogHttpLogThread *aft = malloc(sizeof(LogHttpLogThread));
LogHttpLogThread *aft = SCMalloc(sizeof(LogHttpLogThread));
if (aft == NULL) {
return TM_ECODE_FAILED;
}
@ -335,7 +335,7 @@ TmEcode LogHttpLogThreadInit(ThreadVars *t, void *initdata, void **data)
if(initdata == NULL)
{
SCLogDebug("Error getting context for HTTPLog. \"initdata\" argument NULL");
free(aft);
SCFree(aft);
return TM_ECODE_FAILED;
}
/** Use the Ouptut Context (file pointer and mutex) */
@ -355,7 +355,7 @@ TmEcode LogHttpLogThreadDeinit(ThreadVars *t, void *data)
/* clear memory */
memset(aft, 0, sizeof(LogHttpLogThread));
free(aft);
SCFree(aft);
return TM_ECODE_OK;
}

@ -27,15 +27,15 @@ static TAILQ_HEAD(, OutputModule_) output_modules =
void
OutputRegisterModule(char *name, char *conf_name, LogFileCtx *(*InitFunc)(ConfNode *))
{
OutputModule *module = calloc(1, sizeof(*module));
OutputModule *module = SCCalloc(1, sizeof(*module));
if (module == NULL) {
SCLogError(SC_ERR_MEM_ALLOC,
"Failed to allocated memory for new output module");
exit(EXIT_FAILURE);
}
module->name = strdup(name);
module->conf_name = strdup(conf_name);
module->name = SCStrdup(name);
module->conf_name = SCStrdup(conf_name);
module->InitFunc = InitFunc;
TAILQ_INSERT_TAIL(&output_modules, module, entries);
@ -71,8 +71,8 @@ OutputDeregisterAll(void)
while ((module = TAILQ_FIRST(&output_modules))) {
TAILQ_REMOVE(&output_modules, module, entries);
free(module->name);
free(module->conf_name);
free(module);
SCFree(module->name);
SCFree(module->conf_name);
SCFree(module);
}
}

@ -11,10 +11,11 @@
#include "suricata-common.h"
#include "decode.h"
#include "pkt-var.h"
#include "util-debug.h"
/* puts a new value into a pktvar */
void PktVarUpdate(PktVar *pv, uint8_t *value, uint16_t size) {
if (pv->value) free(pv->value);
if (pv->value) SCFree(pv->value);
pv->value = value;
pv->value_len = size;
}
@ -39,7 +40,7 @@ void PktVarAdd(Packet *p, char *name, uint8_t *value, uint16_t size) {
PktVar *pv = PktVarGet(p, name);
if (pv == NULL) {
pv = malloc(sizeof(PktVar));
pv = SCMalloc(sizeof(PktVar));
if (pv == NULL)
return;
@ -71,10 +72,10 @@ void PktVarFree(PktVar *pv) {
pv->name = NULL;
if (pv->value != NULL)
free(pv->value);
SCFree(pv->value);
PktVar *pv_next = pv->next;
free(pv);
SCFree(pv);
if (pv_next != NULL)
PktVarFree(pv_next);

@ -27,7 +27,7 @@ IPReputationCtx *rep_ctx;
* NULL Error initializing moule;
*/
IPReputationCtx *SCReputationInitCtx() {
rep_ctx = (IPReputationCtx *)malloc(sizeof(IPReputationCtx));
rep_ctx = (IPReputationCtx *)SCMalloc(sizeof(IPReputationCtx));
if (rep_ctx == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory for Reputation context");
exit(EXIT_FAILURE);
@ -72,7 +72,7 @@ Reputation *SCReputationAllocData()
{
Reputation *rep_data = NULL;
if ( (rep_data = malloc(sizeof(Reputation))) == NULL) {
if ( (rep_data = SCMalloc(sizeof(Reputation))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
@ -84,14 +84,14 @@ Reputation *SCReputationAllocData()
}
/**
* \brief Used to free the reputation data that is allocated by Reputation API
* \brief Used to SCFree the reputation data that is allocated by Reputation API
*
* \param Pointer to the data that has to be freed
* \param Pointer to the data that has to be SCFreed
*/
void SCReputationFreeData(void *data)
{
if (data != NULL)
free(data);
SCFree(data);
return;
}
@ -105,7 +105,7 @@ ReputationTransaction *SCReputationTransactionAlloc()
{
ReputationTransaction *rtx = NULL;
if ( (rtx = malloc(sizeof(ReputationTransaction))) == NULL) {
if ( (rtx = SCMalloc(sizeof(ReputationTransaction))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}
@ -115,14 +115,14 @@ ReputationTransaction *SCReputationTransactionAlloc()
}
/**
* \brief Used to free the transaction data
* \brief Used to SCFree the transaction data
*
* \param Pointer to the data that has to be freed
* \param Pointer to the data that has to be SCFreed
*/
void SCReputationTransactionFreeData(void *data)
{
if (data != NULL)
free(data);
SCFree(data);
return;
}
@ -213,7 +213,7 @@ Reputation *SCReputationClone(Reputation *orig)
return NULL;
}
if ( (rep = malloc(sizeof(Reputation))) == NULL) {
if ( (rep = SCMalloc(sizeof(Reputation))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory");
exit(EXIT_FAILURE);
}

@ -51,7 +51,7 @@ void RunModeShutDown(void)
TAILQ_REMOVE(&RunModeOutputs, output, entries);
if (output->logfile_ctx != NULL)
LogFileFreeCtx(output->logfile_ctx);
free(output);
SCFree(output);
}
}
@ -101,7 +101,7 @@ void RunModeInitializeOutputs(void)
"TmModuleGetByName for %s failed", module->name);
exit(EXIT_FAILURE);
}
RunModeOutput *runmode_output = calloc(1, sizeof(RunModeOutput));
RunModeOutput *runmode_output = SCCalloc(1, sizeof(RunModeOutput));
if (runmode_output == NULL) {
SCLogError(SC_ERR_MEM_ALLOC,
"Failed to allocate memory for output.");
@ -1951,7 +1951,7 @@ int RunModeIdsPcapAuto(DetectEngineCtx *de_ctx, char *iface) {
if (tname == NULL)
break;
char *thread_name = strdup(tname);
char *thread_name = SCStrdup(tname);
SCLogDebug("Assigning %s affinity to cpu %u", thread_name, cpu);
ThreadVars *tv_detect_ncpu = TmThreadCreatePacketHandler(thread_name,"stream-queue1","simple","verdict-queue","simple","1slot");
@ -2118,7 +2118,7 @@ int RunModeFilePcapAuto(DetectEngineCtx *de_ctx, char *file) {
if (tname == NULL)
break;
char *thread_name = strdup(tname);
char *thread_name = SCStrdup(tname);
SCLogDebug("Assigning %s affinity to cpu %u", thread_name, cpu);
ThreadVars *tv_detect_ncpu = TmThreadCreatePacketHandler(thread_name,"stream-queue1","simple","alert-queue1","simple","1slot");
@ -2264,7 +2264,7 @@ int RunModeIpsIPFWAuto(DetectEngineCtx *de_ctx) {
if (tname == NULL)
break;
char *thread_name = strdup(tname);
char *thread_name = SCStrdup(tname);
SCLogDebug("Assigning %s affinity to cpu %u", thread_name, cpu);
ThreadVars *tv_detect_ncpu = TmThreadCreatePacketHandler(thread_name,"stream-queue1","simple","verdict-queue","simple","1slot");
@ -2451,7 +2451,7 @@ int RunModeIpsNFQAuto(DetectEngineCtx *de_ctx, char *nfq_id) {
if (tname == NULL)
break;
char *thread_name = strdup(tname);
char *thread_name = SCStrdup(tname);
SCLogDebug("Assigning %s affinity to cpu %u", thread_name, cpu);
ThreadVars *tv_detect_ncpu = TmThreadCreatePacketHandler(thread_name,"stream-queue1","simple","verdict-queue","simple","1slot");
@ -2637,7 +2637,7 @@ int RunModeIdsPfringAuto(DetectEngineCtx *de_ctx, char *iface) {
if (tname == NULL)
break;
char *thread_name = strdup(tname);
char *thread_name = SCStrdup(tname);
SCLogDebug("Assigning %s affinity to cpu %u", thread_name, cpu);
ThreadVars *tv_detect_ncpu = TmThreadCreatePacketHandler(thread_name,"stream-queue1","simple","verdict-queue","simple","1slot");

@ -290,7 +290,7 @@ TmEcode ReceiveIPFWThreadInit(ThreadVars *tv, void *initdata, void **data) {
}
/* Setup Threadvars */
IPFWThreadVars *ptv = malloc(sizeof(IPFWThreadVars));
IPFWThreadVars *ptv = SCMalloc(sizeof(IPFWThreadVars));
if (ptv == NULL) {
SCLogError(SC_ERR_MEM_ALLOC,"Error Allocating memory for IPFW Receive PTV: %s",strerror(errno));
SCReturnInt(TM_ECODE_FAILED);
@ -427,7 +427,7 @@ TmEcode DecodeIPFWThreadInit(ThreadVars *tv, void *initdata, void **data)
{
DecodeThreadVars *dtv = NULL;
if ( (dtv = malloc(sizeof(DecodeThreadVars))) == NULL) {
if ( (dtv = SCMalloc(sizeof(DecodeThreadVars))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC,"Error Allocating memory for IPFW Decode DTV: %s",strerror(errno));
SCReturnInt(TM_ECODE_FAILED);
}
@ -576,7 +576,7 @@ TmEcode VerdictIPFWThreadInit(ThreadVars *tv, void *initdata, void **data) {
SCEnter();
/* Setup Thread vars */
if ( (ptv = malloc(sizeof(IPFWThreadVars))) == NULL) {
if ( (ptv = SCMalloc(sizeof(IPFWThreadVars))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC,"Error Allocating memory for IPFW Verdict PTV: %s", strerror(errno));
SCReturnInt(TM_ECODE_FAILED);
}

@ -516,8 +516,8 @@ TmEcode DecodeNFQThreadInit(ThreadVars *tv, void *initdata, void **data)
{
DecodeThreadVars *dtv = NULL;
if ( (dtv = malloc(sizeof(DecodeThreadVars))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
if ( (dtv = SCMalloc(sizeof(DecodeThreadVars))) == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "SCMalloc failed");
return TM_ECODE_FAILED;
}
memset(dtv, 0, sizeof(DecodeThreadVars));

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save