From: Vsevolod Stakhov Date: Fri, 22 Jun 2018 11:54:10 +0000 (+0100) Subject: [Fix] Fix nested composites process X-Git-Tag: 1.7.7~57 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=8c8b9656c13dcac6b8cb0887a4b884930efbd2cc;p=rspamd.git [Fix] Fix nested composites process --- diff --git a/src/libserver/composites.c b/src/libserver/composites.c index f3dc7a956..f0a079b7b 100644 --- a/src/libserver/composites.c +++ b/src/libserver/composites.c @@ -130,12 +130,17 @@ rspamd_composite_process_single_symbol (struct composites_data *cd, sym, cd->composite->sym); if (isclr (cd->checked, ncomp->id * 2)) { + struct rspamd_composite *saved; + msg_debug_composites ("composite dependency %s for %s is not checked", sym, cd->composite->sym); /* Set checked for this symbol to avoid cyclic references */ setbit (cd->checked, cd->composite->id * 2); + saved = cd->composite; + cd->composite = ncomp; rc = rspamd_process_expression (ncomp->expr, RSPAMD_EXPRESSION_FLAG_NOOPT, cd); + cd->composite = saved; clrbit (cd->checked, cd->composite->id * 2); if (rc != 0) {