*/
#include "suricata-common.h"
+#include "suricata.h"
#include "conf.h"
#include "datasets.h"
#include "datasets-string.h"
SCLogDebug("line: '%s'", line);
struct in_addr in;
- if (inet_pton(AF_INET, line, &in) != 1)
- FatalError(SC_ERR_FATAL, "dataset data parse failed %s/%s: %s", set->name,
+ if (inet_pton(AF_INET, line, &in) != 1) {
+ FatalErrorOnInit(SC_ERR_DATASET, "dataset data parse failed %s/%s: %s", set->name,
set->load, line);
+ continue;
+ }
- if (DatasetAdd(set, (const uint8_t *)&in.s_addr, 4) < 0)
- FatalError(SC_ERR_FATAL, "dataset data add failed %s/%s", set->name, set->load);
+ if (DatasetAdd(set, (const uint8_t *)&in.s_addr, 4) < 0) {
+ FatalErrorOnInit(
+ SC_ERR_DATASET, "dataset data add failed %s/%s", set->name, set->load);
+ continue;
+ }
cnt++;
/* list with rep data */
*r = '\0';
struct in_addr in;
- if (inet_pton(AF_INET, line, &in) != 1)
- FatalError(SC_ERR_FATAL, "dataset data parse failed %s/%s: %s", set->name,
+ if (inet_pton(AF_INET, line, &in) != 1) {
+ FatalErrorOnInit(SC_ERR_DATASET, "dataset data parse failed %s/%s: %s", set->name,
set->load, line);
+ continue;
+ }
r++;
DataRepType rep = { .value = 0 };
- if (ParseRepLine(r, strlen(r), &rep) < 0)
- FatalError(SC_ERR_FATAL, "bad rep for dataset %s/%s", set->name, set->load);
+ if (ParseRepLine(r, strlen(r), &rep) < 0) {
+ FatalErrorOnInit(SC_ERR_DATASET, "bad rep for dataset %s/%s", set->name, set->load);
+ continue;
+ }
SCLogDebug("rep v:%u", rep.value);
- if (DatasetAddwRep(set, (const uint8_t *)&in.s_addr, 4, &rep) < 0)
- FatalError(SC_ERR_FATAL, "dataset data add failed %s/%s", set->name, set->load);
+ if (DatasetAddwRep(set, (const uint8_t *)&in.s_addr, 4, &rep) < 0) {
+ FatalErrorOnInit(
+ SC_ERR_DATASET, "dataset data add failed %s/%s", set->name, set->load);
+ continue;
+ }
cnt++;
}
if (got_colon) {
uint32_t ip6addr[4];
if (inet_pton(AF_INET6, line, in6) != 1) {
- FatalError(SC_ERR_FATAL, "dataset data parse failed %s/%s: %s", set->name, set->load,
- line);
+ FatalErrorOnInit(SC_ERR_DATASET, "dataset data parse failed %s/%s: %s", set->name,
+ set->load, line);
return -1;
}
memcpy(&ip6addr, in6->s6_addr, sizeof(ip6addr));
/* IPv4 case */
struct in_addr in;
if (inet_pton(AF_INET, line, &in) != 1) {
- FatalError(SC_ERR_FATAL, "dataset data parse failed %s/%s: %s", set->name, set->load,
- line);
+ FatalErrorOnInit(SC_ERR_DATASET, "dataset data parse failed %s/%s: %s", set->name,
+ set->load, line);
return -1;
}
memset(in6, 0, sizeof(struct in6_addr));
struct in6_addr in6;
int ret = ParseIpv6String(set, line, &in6);
- if (ret < 0)
- FatalError(SC_ERR_FATAL, "unable to parse IP address");
+ if (ret < 0) {
+ FatalErrorOnInit(SC_ERR_DATASET, "unable to parse IP address");
+ continue;
+ }
- if (DatasetAdd(set, (const uint8_t *)&in6.s6_addr, 16) < 0)
- FatalError(SC_ERR_FATAL, "dataset data add failed %s/%s", set->name, set->load);
+ if (DatasetAdd(set, (const uint8_t *)&in6.s6_addr, 16) < 0) {
+ FatalErrorOnInit(
+ SC_ERR_DATASET, "dataset data add failed %s/%s", set->name, set->load);
+ continue;
+ }
cnt++;
/* list with rep data */
struct in6_addr in6;
int ret = ParseIpv6String(set, line, &in6);
- if (ret < 0)
- FatalError(SC_ERR_FATAL, "unable to parse IP address");
+ if (ret < 0) {
+ FatalErrorOnInit(SC_ERR_DATASET, "unable to parse IP address");
+ continue;
+ }
r++;
DataRepType rep = { .value = 0 };
- if (ParseRepLine(r, strlen(r), &rep) < 0)
- FatalError(SC_ERR_FATAL, "bad rep for dataset %s/%s", set->name, set->load);
+ if (ParseRepLine(r, strlen(r), &rep) < 0) {
+ FatalErrorOnInit(SC_ERR_DATASET, "bad rep for dataset %s/%s", set->name, set->load);
+ continue;
+ }
SCLogDebug("rep v:%u", rep.value);
- if (DatasetAddwRep(set, (const uint8_t *)&in6.s6_addr, 16, &rep) < 0)
- FatalError(SC_ERR_FATAL, "dataset data add failed %s/%s", set->name, set->load);
+ if (DatasetAddwRep(set, (const uint8_t *)&in6.s6_addr, 16, &rep) < 0) {
+ FatalErrorOnInit(
+ SC_ERR_DATASET, "dataset data add failed %s/%s", set->name, set->load);
+ continue;
+ }
cnt++;
}
SCLogDebug("line: '%s'", line);
uint8_t hash[16];
- if (HexToRaw((const uint8_t *)line, 32, hash, sizeof(hash)) < 0)
- FatalError(SC_ERR_FATAL, "bad hash for dataset %s/%s",
- set->name, set->load);
+ if (HexToRaw((const uint8_t *)line, 32, hash, sizeof(hash)) < 0) {
+ FatalErrorOnInit(
+ SC_ERR_DATASET, "bad hash for dataset %s/%s", set->name, set->load);
+ continue;
+ }
- if (DatasetAdd(set, (const uint8_t *)hash, 16) < 0)
- FatalError(SC_ERR_FATAL, "dataset data add failed %s/%s",
- set->name, set->load);
+ if (DatasetAdd(set, (const uint8_t *)hash, 16) < 0) {
+ FatalErrorOnInit(
+ SC_ERR_DATASET, "dataset data add failed %s/%s", set->name, set->load);
+ continue;
+ }
cnt++;
/* list with rep data */
SCLogDebug("MD5 with REP line: '%s'", line);
uint8_t hash[16];
- if (HexToRaw((const uint8_t *)line, 32, hash, sizeof(hash)) < 0)
- FatalError(SC_ERR_FATAL, "bad hash for dataset %s/%s",
- set->name, set->load);
+ if (HexToRaw((const uint8_t *)line, 32, hash, sizeof(hash)) < 0) {
+ FatalErrorOnInit(
+ SC_ERR_DATASET, "bad hash for dataset %s/%s", set->name, set->load);
+ continue;
+ }
DataRepType rep = { .value = 0};
- if (ParseRepLine(line+33, strlen(line)-33, &rep) < 0)
- FatalError(SC_ERR_FATAL, "bad rep for dataset %s/%s",
- set->name, set->load);
+ if (ParseRepLine(line + 33, strlen(line) - 33, &rep) < 0) {
+ FatalErrorOnInit(SC_ERR_DATASET, "bad rep for dataset %s/%s", set->name, set->load);
+ continue;
+ }
SCLogDebug("rep v:%u", rep.value);
- if (DatasetAddwRep(set, hash, 16, &rep) < 0)
- FatalError(SC_ERR_FATAL, "dataset data add failed %s/%s",
- set->name, set->load);
+ if (DatasetAddwRep(set, hash, 16, &rep) < 0) {
+ FatalErrorOnInit(
+ SC_ERR_DATASET, "dataset data add failed %s/%s", set->name, set->load);
+ continue;
+ }
cnt++;
}
else {
- FatalError(SC_ERR_FATAL, "MD5 bad line len %u: '%s'",
- (uint32_t)strlen(line), line);
+ FatalErrorOnInit(
+ SC_ERR_DATASET, "MD5 bad line len %u: '%s'", (uint32_t)strlen(line), line);
+ continue;
}
}
THashConsolidateMemcap(set->hash);
SCLogDebug("line: '%s'", line);
uint8_t hash[32];
- if (HexToRaw((const uint8_t *)line, 64, hash, sizeof(hash)) < 0)
- FatalError(SC_ERR_FATAL, "bad hash for dataset %s/%s",
- set->name, set->load);
+ if (HexToRaw((const uint8_t *)line, 64, hash, sizeof(hash)) < 0) {
+ FatalErrorOnInit(
+ SC_ERR_DATASET, "bad hash for dataset %s/%s", set->name, set->load);
+ continue;
+ }
- if (DatasetAdd(set, (const uint8_t *)hash, (uint32_t)32) < 0)
- FatalError(SC_ERR_FATAL, "dataset data add failed %s/%s",
- set->name, set->load);
+ if (DatasetAdd(set, (const uint8_t *)hash, (uint32_t)32) < 0) {
+ FatalErrorOnInit(
+ SC_ERR_DATASET, "dataset data add failed %s/%s", set->name, set->load);
+ continue;
+ }
cnt++;
/* list with rep data */
SCLogDebug("SHA-256 with REP line: '%s'", line);
uint8_t hash[32];
- if (HexToRaw((const uint8_t *)line, 64, hash, sizeof(hash)) < 0)
- FatalError(SC_ERR_FATAL, "bad hash for dataset %s/%s",
- set->name, set->load);
+ if (HexToRaw((const uint8_t *)line, 64, hash, sizeof(hash)) < 0) {
+ FatalErrorOnInit(
+ SC_ERR_DATASET, "bad hash for dataset %s/%s", set->name, set->load);
+ continue;
+ }
DataRepType rep = { .value = 0 };
- if (ParseRepLine(line+65, strlen(line)-65, &rep) < 0)
- FatalError(SC_ERR_FATAL, "bad rep for dataset %s/%s",
- set->name, set->load);
+ if (ParseRepLine(line + 65, strlen(line) - 65, &rep) < 0) {
+ FatalErrorOnInit(SC_ERR_DATASET, "bad rep for dataset %s/%s", set->name, set->load);
+ continue;
+ }
SCLogDebug("rep %u", rep.value);
- if (DatasetAddwRep(set, hash, 32, &rep) < 0)
- FatalError(SC_ERR_FATAL, "dataset data add failed %s/%s",
- set->name, set->load);
+ if (DatasetAddwRep(set, hash, 32, &rep) < 0) {
+ FatalErrorOnInit(
+ SC_ERR_DATASET, "dataset data add failed %s/%s", set->name, set->load);
+ continue;
+ }
cnt++;
}
}
uint32_t consumed = 0, num_decoded = 0;
Base64Ecode code = DecodeBase64(decoded, strlen(line), (const uint8_t *)line,
strlen(line), &consumed, &num_decoded, BASE64_MODE_STRICT);
- if (code == BASE64_ECODE_ERR)
- FatalError(SC_ERR_FATAL, "bad base64 encoding %s/%s",
- set->name, set->load);
+ if (code == BASE64_ECODE_ERR) {
+ FatalErrorOnInit(SC_ERR_DATASET, "bad base64 encoding %s/%s", set->name, set->load);
+ continue;
+ }
- if (DatasetAdd(set, (const uint8_t *)decoded, num_decoded) < 0)
- FatalError(SC_ERR_FATAL, "dataset data add failed %s/%s",
- set->name, set->load);
+ if (DatasetAdd(set, (const uint8_t *)decoded, num_decoded) < 0) {
+ FatalErrorOnInit(
+ SC_ERR_DATASET, "dataset data add failed %s/%s", set->name, set->load);
+ continue;
+ }
cnt++;
} else {
line[strlen(line) - 1] = '\0';
uint32_t consumed = 0, num_decoded = 0;
Base64Ecode code = DecodeBase64(decoded, strlen(line), (const uint8_t *)line,
strlen(line), &consumed, &num_decoded, BASE64_MODE_STRICT);
- if (code == BASE64_ECODE_ERR)
- FatalError(SC_ERR_FATAL, "bad base64 encoding %s/%s",
- set->name, set->load);
+ if (code == BASE64_ECODE_ERR) {
+ FatalErrorOnInit(SC_ERR_DATASET, "bad base64 encoding %s/%s", set->name, set->load);
+ continue;
+ }
r++;
SCLogDebug("r '%s'", r);
DataRepType rep = { .value = 0 };
- if (ParseRepLine(r, strlen(r), &rep) < 0)
- FatalError(SC_ERR_FATAL, "die: bad rep");
+ if (ParseRepLine(r, strlen(r), &rep) < 0) {
+ FatalErrorOnInit(SC_ERR_DATASET, "die: bad rep");
+ continue;
+ }
SCLogDebug("rep %u", rep.value);
- if (DatasetAddwRep(set, (const uint8_t *)decoded, num_decoded, &rep) < 0)
- FatalError(SC_ERR_FATAL, "dataset data add failed %s/%s",
- set->name, set->load);
+ if (DatasetAddwRep(set, (const uint8_t *)decoded, num_decoded, &rep) < 0) {
+ FatalErrorOnInit(
+ SC_ERR_DATASET, "dataset data add failed %s/%s", set->name, set->load);
+ continue;
+ }
cnt++;
SCLogDebug("line with rep %s, %s", line, r);
const char *set_name = iter->name;
if (strlen(set_name) > DATASET_NAME_MAX_LEN) {
- FatalError(SC_ERR_CONF_NAME_TOO_LONG, "set name '%s' too long, max %d chars",
+ FatalErrorOnInit(SC_ERR_CONF_NAME_TOO_LONG, "set name '%s' too long, max %d chars",
set_name, DATASET_NAME_MAX_LEN);
+ continue;
}
ConfNode *set_type =
Dataset *dset = DatasetGet(set_name, DATASET_TYPE_MD5, save, load,
memcap > 0 ? memcap : default_memcap,
hashsize > 0 ? hashsize : default_hashsize);
- if (dset == NULL)
- FatalError(SC_ERR_FATAL, "failed to setup dataset for %s", set_name);
+ if (dset == NULL) {
+ FatalErrorOnInit(SC_ERR_DATASET, "failed to setup dataset for %s", set_name);
+ continue;
+ }
SCLogDebug("dataset %s: id %d type %s", set_name, n, set_type->val);
dset->from_yaml = true;
n++;
Dataset *dset = DatasetGet(set_name, DATASET_TYPE_SHA256, save, load,
memcap > 0 ? memcap : default_memcap,
hashsize > 0 ? hashsize : default_hashsize);
- if (dset == NULL)
- FatalError(SC_ERR_FATAL, "failed to setup dataset for %s", set_name);
+ if (dset == NULL) {
+ FatalErrorOnInit(SC_ERR_DATASET, "failed to setup dataset for %s", set_name);
+ continue;
+ }
SCLogDebug("dataset %s: id %d type %s", set_name, n, set_type->val);
dset->from_yaml = true;
n++;
Dataset *dset = DatasetGet(set_name, DATASET_TYPE_STRING, save, load,
memcap > 0 ? memcap : default_memcap,
hashsize > 0 ? hashsize : default_hashsize);
- if (dset == NULL)
- FatalError(SC_ERR_FATAL, "failed to setup dataset for %s", set_name);
+ if (dset == NULL) {
+ FatalErrorOnInit(SC_ERR_DATASET, "failed to setup dataset for %s", set_name);
+ continue;
+ }
SCLogDebug("dataset %s: id %d type %s", set_name, n, set_type->val);
dset->from_yaml = true;
n++;