From: Vsevolod Stakhov Date: Sat, 25 Feb 2023 13:36:41 +0000 (+0000) Subject: [Fix] Treat `hs_allocate_scratch` errors as non-fatal X-Git-Tag: 3.5~36 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=33b3e51406f99224c63e79565272eaa62fcc39ed;p=thirdparty%2Frspamd.git [Fix] Treat `hs_allocate_scratch` errors as non-fatal Issue: #4409 --- diff --git a/src/libserver/re_cache.c b/src/libserver/re_cache.c index 37e7929331..3f108fda51 100644 --- a/src/libserver/re_cache.c +++ b/src/libserver/re_cache.c @@ -2594,8 +2594,22 @@ rspamd_re_cache_load_hyperscan (struct rspamd_re_cache *cache, if ((ret = hs_alloc_scratch (rspamd_hyperscan_get_database(re_class->hs_db), &re_class->hs_scratch)) != HS_SUCCESS) { - msg_err_re_cache ("fatal error: cannot allocate scratch for %s: %d", path, ret); - g_abort(); + rspamd_hyperscan_free (re_class->hs_db); + if (!try_load) { + msg_err_re_cache ("bad hs database in %s; error code: %d", path, ret); + } + else { + msg_debug_re_cache ("bad hs database in %s; error code: %d", path, ret); + } + g_free (hs_ids); + g_free (hs_flags); + + re_class->hs_ids = NULL; + re_class->hs_scratch = NULL; + re_class->hs_db = NULL; + all_valid = FALSE; + + continue; } /*