A bad pattern in a rule that hyperscan would fail to compile would
exit Suricata. This could happen during a rule reload as well.
In case of a untrusted ruleset, this could potentially be used to
shut down the sensor.
Commit
7d0851b0c2 already blocks the only know case, but this patch
is more defensive.
Ticket: #6195.
(cherry picked from commit
00e00254eae205bad5d4cfbf6c9e69f944faaf69)
-/* Copyright (C) 2016 Open Information Security Foundation
+/* Copyright (C) 2016-2023 Open Information Security Foundation
*
* You can copy, redistribute or modify this Program under the terms of
* the GNU General Public License version 2 as published by the Free
if (err != HS_SUCCESS) {
SCLogError(SC_ERR_FATAL, "Unable to compile '%s' with Hyperscan, "
"returned %d.", expr, err);
- exit(EXIT_FAILURE);
+ return -1;
}
SCFree(expr);
* contexts may need this scratch space. */
SCLogError(SC_ERR_FATAL,
"Unable to alloc scratch for Hyperscan, returned %d.", err);
- exit(EXIT_FAILURE);
+ return -1;
}
global_thread_ctx->ctx = scratch;
sctx->db = db;