2nd try of fixing some bugs reported by static code analysis tool.

remotes/origin/master-1.0.x
Victor Julien 15 years ago
parent 5041e7e451
commit 39724df664

@ -78,8 +78,7 @@ void DecodeGRE(ThreadVars *tv, DecodeThreadVars *dtv, Packet *p, uint8_t *pkt, u
{
gsre = (GRESreHdr *)(pkt + header_len);
if(gsre == NULL)
if (gsre == NULL)
return;
while (1)
@ -96,7 +95,8 @@ void DecodeGRE(ThreadVars *tv, DecodeThreadVars *dtv, Packet *p, uint8_t *pkt, u
header_len += gsre->sre_length;
gsre = (GRESreHdr *)(pkt + header_len);
if (gsre == NULL)
return;
}
}
break;

@ -139,7 +139,11 @@ int DetectFlowbitSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
int ov[MAX_SUBSTRINGS];
ret = pcre_exec(parse_regex, parse_regex_study, rawstr, strlen(rawstr), 0, 0, ov, MAX_SUBSTRINGS);
if (ret > 1) {
if (ret != 2 && ret != 3) {
printf("ERROR: \"%s\" is not a valid setting for flowbits.\n", rawstr);
return -1;
}
const char *str_ptr;
res = pcre_get_substring((char *)rawstr, ov, MAX_SUBSTRINGS, 1, &str_ptr);
if (res < 0) {
@ -148,7 +152,7 @@ int DetectFlowbitSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
}
fb_cmd_str = (char *)str_ptr;
if (ret > 2) {
if (ret == 3) {
res = pcre_get_substring((char *)rawstr, ov, MAX_SUBSTRINGS, 2, &str_ptr);
if (res < 0) {
printf("DetectPcreSetup: pcre_get_substring failed\n");
@ -156,10 +160,6 @@ int DetectFlowbitSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
}
fb_name = (char *)str_ptr;
}
} else {
printf("ERROR: \"%s\" is not a valid setting for flowbits.\n", rawstr);
return -1;
}
if (strcmp(fb_cmd_str,"noalert") == 0) {
fb_cmd = DETECT_FLOWBITS_CMD_NOALERT;
@ -189,7 +189,11 @@ int DetectFlowbitSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
goto error;
}
if (fb_name != NULL) {
cd->idx = VariableNameGetIdx(de_ctx,fb_name,DETECT_FLOWBITS);
} else {
cd->idx = 0;
}
cd->cmd = fb_cmd;
//printf("DetectFlowbitSetup: idx %" PRIu32 ", cmd %s, name %s\n", cd->idx, fb_cmd_str, fb_name ? fb_name : "(null)");

@ -91,7 +91,11 @@ int DetectFlowvarSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
int ov[MAX_SUBSTRINGS];
ret = pcre_exec(parse_regex, parse_regex_study, rawstr, strlen(rawstr), 0, 0, ov, MAX_SUBSTRINGS);
if (ret > 1) {
if (ret != 3) {
printf("ERROR: \"%s\" is not a valid setting for flowvar.\n", rawstr);
return -1;
}
const char *str_ptr;
res = pcre_get_substring((char *)rawstr, ov, MAX_SUBSTRINGS, 1, &str_ptr);
if (res < 0) {
@ -108,12 +112,8 @@ int DetectFlowvarSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
}
varcontent = (char *)str_ptr;
}
} else {
printf("ERROR: \"%s\" is not a valid setting for flowvar.\n", rawstr);
return -1;
}
printf("DetectFlowvarSetup: varname %s, varcontent %s\n", varname, varcontent);
//printf("DetectFlowvarSetup: varname %s, varcontent %s\n", varname, varcontent);
if (varcontent[0] == '\"' && varcontent[strlen(varcontent)-1] == '\"') {
str = strdup(varcontent+1);

@ -85,7 +85,12 @@ int DetectPktvarSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
int ov[MAX_SUBSTRINGS];
ret = pcre_exec(parse_regex, parse_regex_study, rawstr, strlen(rawstr), 0, 0, ov, MAX_SUBSTRINGS);
if (ret > 1) {
if (ret != 3) {
printf("ERROR: \"%s\" is not a valid setting for pktvar.\n", rawstr);
return -1;
}
const char *str_ptr;
res = pcre_get_substring((char *)rawstr, ov, MAX_SUBSTRINGS, 1, &str_ptr);
if (res < 0) {
@ -102,10 +107,6 @@ int DetectPktvarSetup (DetectEngineCtx *de_ctx, Signature *s, SigMatch *m, char
}
varcontent = (char *)str_ptr;
}
} else {
printf("ERROR: \"%s\" is not a valid setting for pktvar.\n", rawstr);
return -1;
}
printf("DetectPktvarSetup: varname %s, varcontent %s\n", varname, varcontent);

Loading…
Cancel
Save