aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rspamd.com>2024-12-12 11:05:14 +0000
committerVsevolod Stakhov <vsevolod@rspamd.com>2024-12-12 11:05:14 +0000
commite5ac3591d7fbb8aa21d7029377a19470abfaede7 (patch)
tree14f78af20316af9051b618624183ccfdeb51b2ff
parent7e6bec3c411cf368f37c1701141a5f65895b741a (diff)
downloadrspamd-e5ac3591d7fbb8aa21d7029377a19470abfaede7.tar.gz
rspamd-e5ac3591d7fbb8aa21d7029377a19470abfaede7.zip
[Fix] Remove USPOOF_SINGLE_SCRIPT_CONFUSABLE from the checks
In fact, it just checks if string1 and string2 intersect or not, and it is definitely not the check we want there.
-rw-r--r--src/lua/lua_util.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/lua/lua_util.c b/src/lua/lua_util.c
index 14994751c..ce4d9f67c 100644
--- a/src/lua/lua_util.c
+++ b/src/lua/lua_util.c
@@ -2152,6 +2152,17 @@ lua_util_is_utf_spoofed(lua_State *L)
return 1;
}
+
+ /* Disable single script confusables, as it is not what we want to check */
+ uspoof_setChecks(spc,
+ USPOOF_CONFUSABLE & ~USPOOF_SINGLE_SCRIPT_CONFUSABLE,
+ &uc_err);
+ if (uc_err != U_ZERO_ERROR) {
+ msg_err("Cannot set proper checks for uspoof: %s", u_errorName(uc_err));
+ lua_pushboolean(L, false);
+ uspoof_close(spc);
+ return 1;
+ }
}
ret = uspoof_areConfusableUTF8(spc, s1, l1, s2, l2, &uc_err);
@@ -2174,7 +2185,7 @@ lua_util_is_utf_spoofed(lua_State *L)
if (uc_err != U_ZERO_ERROR) {
msg_err("Cannot set proper checks for uspoof: %s", u_errorName(uc_err));
lua_pushboolean(L, false);
- uspoof_close(spc);
+ uspoof_close(spc_sgl);
return 1;
}
}