diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2020-07-08 14:44:47 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2020-07-08 14:44:47 +0100 |
commit | a52e5197df22659df1f611ce4505c505b461b365 (patch) | |
tree | 4666a0fa25fb6b3859c23d4438412ad110405eb9 /src | |
parent | 11da6af8ac176ffad051f246515ab008de8456a9 (diff) | |
download | rspamd-a52e5197df22659df1f611ce4505c505b461b365.tar.gz rspamd-a52e5197df22659df1f611ce4505c505b461b365.zip |
[Minor] Fix extensions processing in fuzzy worker
Diffstat (limited to 'src')
-rw-r--r-- | src/fuzzy_storage.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/fuzzy_storage.c b/src/fuzzy_storage.c index 0d7721ffb..f9c669452 100644 --- a/src/fuzzy_storage.c +++ b/src/fuzzy_storage.c @@ -1118,12 +1118,12 @@ rspamd_fuzzy_command_valid (struct rspamd_fuzzy_cmd *cmd, gint r) switch (cmd->version) { case 4: if (cmd->shingles_count > 0) { - if (r == sizeof (struct rspamd_fuzzy_shingle_cmd)) { + if (r >= sizeof (struct rspamd_fuzzy_shingle_cmd)) { ret = RSPAMD_FUZZY_EPOCH11; } } else { - if (r == sizeof (*cmd)) { + if (r >= sizeof (*cmd)) { ret = RSPAMD_FUZZY_EPOCH11; } } @@ -1223,7 +1223,7 @@ rspamd_fuzzy_decrypt_command (struct fuzzy_session *s, guchar *buf, gsize buflen static gboolean rspamd_fuzzy_extensions_from_wire (struct fuzzy_session *s, guchar *buf, gsize buflen) { - struct rspamd_fuzzy_cmd_extension *ext; + struct rspamd_fuzzy_cmd_extension *ext, *prev_ext; guchar *storage, *p = buf, *end = buf + buflen; gsize st_len = 0, n_ext = 0; @@ -1295,6 +1295,7 @@ rspamd_fuzzy_extensions_from_wire (struct fuzzy_session *s, guchar *buf, gsize b /* All validation has been done, so we can just go further */ while (p < end) { + prev_ext = ext; guchar cmd = *p++; if (cmd == RSPAMD_FUZZY_EXT_SOURCE_DOMAIN) { @@ -1338,7 +1339,7 @@ rspamd_fuzzy_extensions_from_wire (struct fuzzy_session *s, guchar *buf, gsize b } /* Last next should be NULL */ - ext->next = NULL; + prev_ext->next = NULL; /* Rewind to the begin */ ext = (struct rspamd_fuzzy_cmd_extension *)storage; |