Browse Source

[Minor] Fix extensions processing in fuzzy worker

tags/2.6
Vsevolod Stakhov 3 years ago
parent
commit
a52e5197df
1 changed files with 5 additions and 4 deletions
  1. 5
    4
      src/fuzzy_storage.c

+ 5
- 4
src/fuzzy_storage.c View File

@@ -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;

Loading…
Cancel
Save