Various fixes for issues reported by clang.

remotes/origin/master-1.1.x
Victor Julien 14 years ago
parent 38e7d944c5
commit e19f6ebaf4

@ -1108,12 +1108,14 @@ static int SCPerfOutputCounterFileIface()
break;
}
pc_heads[u] = pc_heads[u]->next;
if (pc_heads[u] != NULL)
pc_heads[u] = pc_heads[u]->next;
if (pc_heads[u] == NULL ||
(pc_heads[0] != NULL &&
strcmp(pctmi->tm_name, pc_heads[0]->name->tm_name)))
strcmp(pctmi->tm_name, pc_heads[0]->name->tm_name))) {
flag = 0;
}
}
if (pc->disp == 0 || pc->value == NULL)
@ -1839,6 +1841,10 @@ static int SCPerfTestGetCntArray05()
id = SCPerfRegisterCounter("t1", "c1", SC_PERF_TYPE_UINT64, NULL,
&tv.sc_perf_pctx);
if (id != 1) {
printf("id %d: ", id);
return 0;
}
tv.sc_perf_pca = SCPerfGetAllCountersArray(NULL);
@ -1855,6 +1861,8 @@ static int SCPerfTestGetCntArray06()
id = SCPerfRegisterCounter("t1", "c1", SC_PERF_TYPE_UINT64, NULL,
&tv.sc_perf_pctx);
if (id != 1)
return 0;
tv.sc_perf_pca = SCPerfGetAllCountersArray(&tv.sc_perf_pctx);
@ -1874,7 +1882,7 @@ static int SCPerfTestCntArraySize07()
memset(&tv, 0, sizeof(ThreadVars));
pca = (SCPerfCounterArray *)&tv.sc_perf_pca;
//pca = (SCPerfCounterArray *)&tv.sc_perf_pca;
SCPerfRegisterCounter("t1", "c1", SC_PERF_TYPE_UINT64, NULL,
&tv.sc_perf_pctx);

@ -353,10 +353,10 @@ DetectBytejumpData *DetectBytejumpParse(char *optstr)
* supports 9 substrings, sigh.
*/
res = pcre_get_substring((char *)optstr, ov,
MAX_SUBSTRINGS, i + 1, (const char **)&str_ptr);
MAX_SUBSTRINGS, 1, (const char **)&str_ptr);
if (res < 0) {
SCLogError(SC_ERR_PCRE_GET_SUBSTRING,"pcre_get_substring failed "
"for arg %d", i + 1);
"for arg 1");
goto error;
}

@ -116,6 +116,9 @@ DetectThresholdData *DetectDetectionFilterParse (char *rawstr) {
int i = 0;
copy_str = SCStrdup(rawstr);
if (copy_str == NULL) {
goto error;
}
for(pos = 0, df_opt = strtok(copy_str,","); pos < strlen(copy_str) && df_opt != NULL; pos++, df_opt = strtok(NULL,",")) {
@ -127,8 +130,10 @@ DetectThresholdData *DetectDetectionFilterParse (char *rawstr) {
track_found++;
}
if(copy_str)
if (copy_str) {
SCFree(copy_str);
copy_str = NULL;
}
if(count_found != 1 || seconds_found != 1 || track_found != 1)
goto error;
@ -185,16 +190,21 @@ DetectThresholdData *DetectDetectionFilterParse (char *rawstr) {
goto error;
}
for (i = 0; i < (ret - 1); i++){
if (args[i] != NULL) SCFree(args[i]);
for (i = 0; i < 6; i++){
if (args[i] != NULL)
SCFree(args[i]);
}
return df;
error:
for (i = 0; i < (ret - 1); i++){
if (args[i] != NULL) SCFree(args[i]);
for (i = 0; i < 6; i++){
if (args[i] != NULL)
SCFree(args[i]);
}
if (df) SCFree(df);
if (df != NULL)
SCFree(df);
if (copy_str != NULL)
SCFree(copy_str);
return NULL;
}

@ -180,7 +180,7 @@ static inline int SCSigGetFlowvarType(Signature *sig)
sm = sig->sm_lists[DETECT_SM_LIST_MATCH];
pd = NULL;
while (sm != NULL) {
pd = (DetectPcreData *)sm->ctx;
//pd = (DetectPcreData *)sm->ctx;
if (sm->type == DETECT_FLOWVAR) {
type = DETECT_FLOWVAR_TYPE_READ;
return type;
@ -228,7 +228,7 @@ static inline int SCSigGetPktvarType(Signature *sig)
sm = sig->sm_lists[DETECT_SM_LIST_MATCH];
pd = NULL;
while (sm != NULL) {
pd = (DetectPcreData *)sm->ctx;
//pd = (DetectPcreData *)sm->ctx;
if (sm->type == DETECT_PKTVAR) {
type = DETECT_PKTVAR_TYPE_READ;
return type;
@ -344,17 +344,21 @@ static void SCSigOrderByAction(DetectEngineCtx *de_ctx,
if (min == max && prev != sw) {
if (sw->next != NULL) {
sw->next->prev = sw->prev;
}
if (sw->prev != NULL) {
sw->prev->next = sw->next;
}
if (min == NULL) {
prev->next = sw;
if (prev != NULL)
prev->next = sw;
sw->prev = prev;
sw->next = NULL;
} else {
sw->prev = min->prev;
sw->next = min;
min->prev->next = sw;
if (min->prev != NULL)
min->prev->next = sw;
min->prev = sw;
}
}
@ -449,17 +453,21 @@ static void SCSigOrderByFlowbits(DetectEngineCtx *de_ctx,
if (min == max && prev != sw) {
if (sw->next != NULL) {
sw->next->prev = sw->prev;
}
if (sw->prev != NULL) {
sw->prev->next = sw->next;
}
if (min == NULL) {
prev->next = sw;
if (prev != NULL)
prev->next = sw;
sw->prev = prev;
sw->next = NULL;
} else {
sw->prev = min->prev;
sw->next = min;
min->prev->next = sw;
if (min->prev != NULL)
min->prev->next = sw;
min->prev = sw;
}
}
@ -557,17 +565,21 @@ static void SCSigOrderByFlowvar(DetectEngineCtx *de_ctx,
if (min == max && prev != sw) {
if (sw->next != NULL) {
sw->next->prev = sw->prev;
}
if (sw->prev != NULL) {
sw->prev->next = sw->next;
}
if (min == NULL) {
prev->next = sw;
if (prev != NULL)
prev->next = sw;
sw->prev = prev;
sw->next = NULL;
} else {
sw->prev = min->prev;
sw->next = min;
min->prev->next = sw;
if (min->prev != NULL)
min->prev->next = sw;
min->prev = sw;
}
}
@ -663,17 +675,21 @@ static void SCSigOrderByPktvar(DetectEngineCtx *de_ctx,
if (min == max && prev != sw) {
if (sw->next != NULL) {
sw->next->prev = sw->prev;
}
if (sw->prev != NULL) {
sw->prev->next = sw->next;
}
if (min == NULL) {
prev->next = sw;
if (prev != NULL)
prev->next = sw;
sw->prev = prev;
sw->next = NULL;
} else {
sw->prev = min->prev;
sw->next = min;
min->prev->next = sw;
if (min->prev != NULL)
min->prev->next = sw;
min->prev = sw;
}
}
@ -770,17 +786,21 @@ static void SCSigOrderByPriority(DetectEngineCtx *de_ctx,
if (min == max && prev != sw) {
if (sw->next != NULL) {
sw->next->prev = sw->prev;
}
if (sw->prev != NULL) {
sw->prev->next = sw->next;
}
if (min == NULL) {
prev->next = sw;
if (prev != NULL)
prev->next = sw;
sw->prev = prev;
sw->next = NULL;
} else {
sw->prev = min->prev;
sw->next = min;
min->prev->next = sw;
if (min->prev != NULL)
min->prev->next = sw;
min->prev = sw;
}
}

@ -229,8 +229,6 @@ static void DeStateSignatureAppend(DetectEngineState *state, Signature *s,
state->tail->next = store;
state->tail = store;
}
} else {
store = state->tail;
}
}

@ -270,11 +270,12 @@ int TagHashAddTag(DetectTagHostCtx *tag_ctx, DetectTagDataEntry *tde, Packet *p)
entry = TagHashSearch(tag_ctx, &tdl, p);
if (entry == NULL) {
DetectTagDataEntryList *new = SCMalloc(sizeof(DetectTagDataEntryList));
if (new == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "Failed to allocate a new session");
if (new != NULL) {
memcpy(new, &tdl, sizeof(DetectTagDataEntryList));
TagHashAdd(tag_ctx, new, p);
} else {
SCLogDebug("Failed to allocate a new session");
}
memcpy(new, &tdl, sizeof(DetectTagDataEntryList));
TagHashAdd(tag_ctx, new, p);
} else {
/* Append the tag to the list of this host */

@ -140,6 +140,9 @@ static int DetectFlowvarSetup (DetectEngineCtx *de_ctx, Signature *s, char *raws
if (varcontent[0] == '\"' && varcontent[strlen(varcontent)-1] == '\"') {
str = SCStrdup(varcontent+1);
if (str == NULL) {
return -1;
}
str[strlen(varcontent)-2] = '\0';
dubbed = 1;
}

@ -248,16 +248,19 @@ static DetectFragBitsData *DetectFragBitsParse (char *rawstr)
if(found == 0)
goto error;
for (i = 0; i < (ret - 1); i++){
if (args[i] != NULL) SCFree(args[i]);
for (i = 0; i < 2; i++) {
if (args[i] != NULL)
SCFree(args[i]);
}
return de;
error:
for (i = 0; i < (ret - 1); i++){
if (args[i] != NULL) SCFree(args[i]);
for (i = 0; i < 2; i++) {
if (args[i] != NULL)
SCFree(args[i]);
}
if (de) SCFree(de);
if (de != NULL)
SCFree(de);
return NULL;
}

@ -136,6 +136,9 @@ static int DetectPktvarSetup (DetectEngineCtx *de_ctx, Signature *s, char *rawst
if (varcontent[0] == '\"' && varcontent[strlen(varcontent)-1] == '\"') {
str = SCStrdup(varcontent+1);
if (str == NULL) {
return -1;
}
str[strlen(varcontent)-2] = '\0';
dubbed = 1;
}

@ -124,6 +124,9 @@ int DetectTagFlowAdd(Packet *p, DetectTagDataEntry *tde) {
if (p->flow->tag_list == NULL) {
p->flow->tag_list = SCMalloc(sizeof(DetectTagDataEntryList));
if (p->flow->tag_list == NULL) {
goto error;
}
memset(p->flow->tag_list, 0, sizeof(DetectTagDataEntryList));
} else {
iter = p->flow->tag_list->header_entry;
@ -158,6 +161,10 @@ int DetectTagFlowAdd(Packet *p, DetectTagDataEntry *tde) {
SCMutexUnlock(&p->flow->m);
return updated;
error:
SCMutexUnlock(&p->flow->m);
return 1;
}
/**

@ -121,6 +121,9 @@ static DetectThresholdData *DetectThresholdParse (char *rawstr)
int i = 0;
copy_str = SCStrdup(rawstr);
if (copy_str == NULL) {
goto error;
}
for(pos = 0, threshold_opt = strtok(copy_str,","); pos < strlen(copy_str) && threshold_opt != NULL; pos++, threshold_opt = strtok(NULL,",")) {
@ -134,8 +137,10 @@ static DetectThresholdData *DetectThresholdParse (char *rawstr)
track_found++;
}
if(copy_str)
if (copy_str != NULL) {
SCFree(copy_str);
copy_str = NULL;
}
if(count_found != 1 || second_found != 1 || type_found != 1 || track_found != 1)
goto error;
@ -203,7 +208,10 @@ error:
for (i = 0; i < (ret - 1); i++){
if (args[i] != NULL) SCFree(args[i]);
}
if (de) SCFree(de);
if (de != NULL)
SCFree(de);
if (copy_str != NULL)
SCFree(copy_str);
return NULL;
}

@ -135,6 +135,9 @@ void *TmqhOutputFlowSetupCtx(char *queue_str) {
memset(ctx,0x00,sizeof(TmqhFlowCtx));
char *str = SCStrdup(queue_str);
if (str == NULL) {
goto error;
}
char *tstr = str;
/* parse the comma separated string */
@ -159,7 +162,8 @@ void *TmqhOutputFlowSetupCtx(char *queue_str) {
return (void *)ctx;
error:
SCFree(ctx);
SCFree(str);
if (str != NULL)
SCFree(str);
return NULL;
}

@ -389,7 +389,7 @@ Asn1Node *SCAsn1CtxNewFrame(Asn1Ctx *ac, uint16_t node) {
if (ac->asn1_stack[node] == NULL)
ac->asn1_stack[node] = SCMalloc(sizeof(Asn1Node));
if (&ac->asn1_stack[node] == NULL)
if (ac->asn1_stack[node] == NULL)
return NULL;
memset(ac->asn1_stack[node], 0, sizeof(Asn1Node));

@ -450,7 +450,6 @@ static void SCRadixReleasePrefix(SCRadixPrefix *prefix, SCRadixTree *tree)
SCFree(prefix->stream);
user_data_temp1 = prefix->user_data;
user_data_temp2 = user_data_temp1;
if (tree->Free != NULL) {
while (user_data_temp1 != NULL) {
user_data_temp2 = user_data_temp1;
@ -1041,8 +1040,7 @@ SCRadixNode *SCRadixAddKeyIPV4String(const char *str, SCRadixTree *tree, void *u
}
/* Validate the IP */
int r;
if ((r = inet_pton(AF_INET, ip_str, &addr)) <= 0) {
if (inet_pton(AF_INET, ip_str, &addr) <= 0) {
return NULL;
}
ip = addr.s_addr;
@ -1132,7 +1130,6 @@ static void SCRadixTransferNetmasksBWNodes(SCRadixNode *dest, SCRadixNode *src)
static void SCRadixRemoveNetblockEntry(SCRadixNode *node, uint8_t netmask)
{
SCRadixNode *parent = NULL;
SCRadixNode *local_node = node;
int i = 0;
if (node == NULL) {
@ -1145,10 +1142,8 @@ static void SCRadixRemoveNetblockEntry(SCRadixNode *node, uint8_t netmask)
if (netmask == 32 || netmask == 128)
return;
local_node = node;
parent = local_node->parent;
parent = node->parent;
while (parent != NULL && netmask < (parent->bit + 1)) {
local_node = parent;
parent = parent->parent;
}

Loading…
Cancel
Save