Improve error reporting in case of syntax errors in the address and port vars.

remotes/origin/master
Victor Julien 13 years ago
parent 5b457807e2
commit 5e95524122

@ -825,8 +825,8 @@ int DetectAddressSetup(DetectAddressHead *gh, char *s)
ad = DetectAddressParseSingle(s);
if (ad == NULL) {
SCLogError(SC_ERR_ADDRESS_ENGINE_GENERIC,
"DetectAddressParse error \"%s\"", s);
goto error;
"failed to parse address \"%s\"", s);
return -1;
}
if (ad->flags & ADDRESS_FLAG_ANY)
@ -1240,7 +1240,7 @@ int DetectAddressTestConfVars(void)
ConfNode *seq_node;
TAILQ_FOREACH(seq_node, &address_vars_node->head, next) {
SCLogDebug("Testing %s - %s\n", seq_node->name, seq_node->val);
SCLogDebug("Testing %s - %s", seq_node->name, seq_node->val);
DetectAddressHead *gh = DetectAddressHeadInit();
if (gh == NULL) {
@ -1253,12 +1253,15 @@ int DetectAddressTestConfVars(void)
int r = DetectAddressParse2(gh, ghn, seq_node->val, /* start with negate no */0);
if (r < 0) {
SCLogError(SC_ERR_INVALID_YAML_CONF_ENTRY,
"failed to parse address var \"%s\" with value \"%s\". "
"Please check it's syntax", seq_node->name, seq_node->val);
goto error;
}
if (DetectAddressIsCompleteIPSpace(ghn)) {
SCLogError(SC_ERR_INVALID_YAML_CONF_ENTRY,
"Address var - \"%s\" has the complete IP space negated "
"address var - \"%s\" has the complete IP space negated "
"with it's value \"%s\". Rule address range is NIL. "
"Probably have a !any or an address range that supplies "
"a NULL address range", seq_node->name, seq_node->val);

@ -914,8 +914,8 @@ static int DetectPortParseInsertString(DetectPort **head, char *s) {
/** parse the address */
ad = PortParse(s);
if (ad == NULL) {
SCLogError(SC_ERR_INVALID_ARGUMENT,"PortParse error \"%s\"",s);
goto error;
SCLogError(SC_ERR_INVALID_ARGUMENT," failed to parse port \"%s\"",s);
return -1;
}
if (ad->flags & PORT_FLAG_ANY) {

@ -1373,6 +1373,18 @@ int main(int argc, char **argv)
TagInitCtx();
if (DetectAddressTestConfVars() < 0) {
SCLogError(SC_ERR_INVALID_YAML_CONF_ENTRY,
"basic address vars test failed. Please check %s for errors", conf_filename);
exit(EXIT_FAILURE);
}
if (DetectPortTestConfVars() < 0) {
SCLogError(SC_ERR_INVALID_YAML_CONF_ENTRY,
"basic port vars test failed. Please check %s for errors", conf_filename);
exit(EXIT_FAILURE);
}
TmModuleReceiveNFQRegister();
TmModuleVerdictNFQRegister();
TmModuleDecodeNFQRegister();
@ -1640,11 +1652,6 @@ int main(int argc, char **argv)
if (MagicInit() != 0)
exit(EXIT_FAILURE);
if (DetectAddressTestConfVars() < 0)
exit(0);
if (DetectPortTestConfVars() < 0)
exit(0);
if (SigLoadSignatures(de_ctx, sig_file, sig_file_exclusive) < 0) {
if (sig_file == NULL) {
SCLogError(SC_ERR_OPENING_FILE, "Signature file has not been provided");

Loading…
Cancel
Save