commit 7374691: [Minor] Some more fixes towards hyperscan obsoletion reasoning

Vsevolod Stakhov vsevolod at rspamd.com
Fri Jul 8 20:56:03 UTC 2022


Author: Vsevolod Stakhov
Date: 2022-07-08 21:55:04 +0100
URL: https://github.com/rspamd/rspamd/commit/7374691f84fd8e0cc64877ad6e42c6d8b3b784b8 (HEAD -> master)

[Minor] Some more fixes towards hyperscan obsoletion reasoning

---
 src/hs_helper.c          | 17 +++++++++++++----
 src/libserver/re_cache.c |  7 ++++---
 2 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/src/hs_helper.c b/src/hs_helper.c
index 3a74d5dda..4ec51aef4 100644
--- a/src/hs_helper.c
+++ b/src/hs_helper.c
@@ -144,20 +144,29 @@ rspamd_hs_helper_cleanup_dir (struct hs_helper_ctx *ctx, gboolean forced)
 	if ((rc = glob (pattern, 0, NULL, &globbuf)) == 0) {
 		for (i = 0; i < globbuf.gl_pathc; i++) {
 			GError *err = NULL;
+
+			if (forced) {
+				g_set_error(&err, g_quark_from_static_string ("re_cache"),
+						0, "forced removal");
+			}
+
 			if (forced ||
 					!rspamd_re_cache_is_valid_hyperscan_file (ctx->cfg->re_cache,
 						globbuf.gl_pathv[i], TRUE, TRUE, &err)) {
 				if (unlink (globbuf.gl_pathv[i]) == -1) {
-					msg_err ("cannot unlink %s: %s", globbuf.gl_pathv[i],
-							strerror (errno));
+					msg_err ("cannot unlink %s: %s (reason for expiration: %e)", globbuf.gl_pathv[i],
+							strerror(errno));
 					ret = FALSE;
 				}
 				else {
-					msg_notice ("successfully removed outdated hyperscan file: %s; %e",
+					msg_notice ("successfully removed outdated hyperscan file: %s; reason for expiration: %e",
 							globbuf.gl_pathv[i], err);
-					g_error_free(err);
 				}
 			}
+
+			if (err) {
+				g_error_free(err);
+			}
 		}
 	}
 	else if (rc != GLOB_NOMATCH) {
diff --git a/src/libserver/re_cache.c b/src/libserver/re_cache.c
index a98ea5056..cb454d16d 100644
--- a/src/libserver/re_cache.c
+++ b/src/libserver/re_cache.c
@@ -2387,7 +2387,7 @@ rspamd_re_cache_is_valid_hyperscan_file (struct rspamd_re_cache *cache,
 				return FALSE;
 			}
 
-			if (memcmp (&test_plt, &cache->plt, sizeof (test_plt)) != 0) {
+			if (test_plt.cpu_features != cache->plt.cpu_features) {
 				msg_err_re_cache ("cannot open hyperscan cache file %s: "
 						"compiled for a different platform",
 						path);
@@ -2483,10 +2483,11 @@ rspamd_re_cache_is_valid_hyperscan_file (struct rspamd_re_cache *cache,
 
 	if (!silent) {
 		msg_warn_re_cache ("unknown hyperscan cache file %s", path);
-		g_set_error(err, rspamd_re_cache_quark(), 0,
-				"unknown hyperscan file");
 	}
 
+	g_set_error(err, rspamd_re_cache_quark(), 0,
+			"unknown hyperscan file");
+
 	return FALSE;
 #endif
 }


More information about the Commits mailing list