aboutsummaryrefslogtreecommitdiffstats
path: root/src/lua
diff options
context:
space:
mode:
authorJan Smutny <js@excello.cz>2021-08-31 14:25:23 +0200
committerJan Smutny <js@excello.cz>2021-08-31 14:36:36 +0200
commitabea3ac21f764658a966dad475fc99e4b79530d7 (patch)
treeec6ef0cdee7b80b3703fdcc96a172b524f09aede /src/lua
parent355ccaca3c2ffc8e08a09934d96d995cd8334228 (diff)
downloadrspamd-abea3ac21f764658a966dad475fc99e4b79530d7.tar.gz
rspamd-abea3ac21f764658a966dad475fc99e4b79530d7.zip
[Fix] src/lua/lua_mimepart.c: fix null dereference
Diffstat (limited to 'src/lua')
-rw-r--r--src/lua/lua_mimepart.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/lua/lua_mimepart.c b/src/lua/lua_mimepart.c
index 66b588e3a..21a46d496 100644
--- a/src/lua/lua_mimepart.c
+++ b/src/lua/lua_mimepart.c
@@ -1240,7 +1240,16 @@ lua_textpart_get_fuzzy_hashes (lua_State * L)
rspamd_stat_token_t *word;
struct lua_shingle_filter_cbdata cbd;
- if (part && pool) {
+
+ if (part == NULL || pool == NULL) {
+ return luaL_error (L, "invalid arguments");
+ }
+
+ if (IS_TEXT_PART_EMPTY (part) || part->utf_words == NULL) {
+ lua_pushnil (L);
+ lua_pushnil (L);
+ }
+ else {
/* TODO: add keys and algorithms support */
rspamd_cryptobox_hash (key, "rspamd", strlen ("rspamd"), NULL, 0);
@@ -1294,9 +1303,6 @@ lua_textpart_get_fuzzy_hashes (lua_State * L)
}
}
}
- else {
- return luaL_error (L, "invalid arguments");
- }
return 2;
}