Before parsing a rule string, validate that it is UTF-8 first.
Related Redmine issue:
https://redmine.openinfosecfoundation.org/issues/3850
{
SCEnter();
+ if (!rs_check_utf8(sigstr)) {
+ SCLogError(SC_ERR_RULE_INVALID_UTF8, "rule is not valid UTF-8");
+ SCReturnInt(-1);
+ }
+
s->sig_str = SCStrdup(sigstr);
if (unlikely(s->sig_str == NULL)) {
SCReturnInt(-1);
CASE_CODE (SC_WARN_PATH_READ_ERROR);
CASE_CODE (SC_ERR_PLUGIN);
CASE_CODE(SC_ERR_LOG_OUTPUT);
+ CASE_CODE(SC_ERR_RULE_INVALID_UTF8);
CASE_CODE (SC_ERR_MAX);
}
SC_ERR_HTTP2_LOG_GENERIC,
SC_ERR_PLUGIN,
SC_ERR_LOG_OUTPUT,
+ SC_ERR_RULE_INVALID_UTF8,
SC_ERR_MAX
} SCError;