https://bz.apache.org/SpamAssassin/show_bug.cgi?id=7917

--- Comment #7 from Shaun Johnson <sh...@linuxmagic.com> ---
I spoke too soon in saying everything appears to be working (coincidental -
forgot that forcing a refresh through, and no further updates, that the update
test would pass).

The patches listed here by Giovanni likely solve something for current / latest
spamassassin, but are not related to the version that I am seeing this issue
(3.4.4-1ubuntu1.1).

Reading the logic in the downloaded 60_whitelist_dkim.cf file,  Giovanni is
correct that there is already a ifplugin statement that should handle this
all... but possibly something in the configuration parsing of 3.4.4-1 is not
working quite right...

The logic in 60_whitelist_dkim.cf related to where this issue triggers looks
like:

if (version >= 3.003000)

    ifplugin Mail::SpamAssassin::Plugin::DKIM

        if can(Mail::SpamAssassin::Conf::feature_blocklist_welcomelist)

            ...define a header rule for 'welcomelist' terminology , and several
def_welcomelist_from_dkim calls ....

        else

            ... define a different header rule for 'whitelist'
terminology...and several 'def_whitelist_from_dkim' lines are defined

        endif
    endif
endif


This all looks good and fine, and in theory, if the DKIM plugin is not enabled,
then neither welcomelist or whitelist header rule and def_XXXX lines would be
defined.


However, what I am seeing in reality is that with the DKIM plugin not loaded,
the 'else' logic block is still being loaded / run - it is as if the
configuration parser were applying the 'else' to match up with the ifplugin
conditional, instead of the 'if can' conditional.

I ran some experiments with the 60_whitelist_dkim.cf file and found that if I
replaced the 'else' line to instead be:

---- snip --
endif

if (!can(Mail::SpamAssassin::Conf::feature_blocklist_welcomelist))
---- snip ---


that parsing appeared to work as expected (NOTE: I do not claim this to be a
definitive fix - I am not a spamassassin rules maintainer ...)

Method used to test:


spamassassin -D < test.msg


Prior to mucking around with changing 60_whitelist.cf, with DKIM plugin not
loaded, I would see lines:

--- snip --

dbg: config: read file
/var/lib/spamassassin/3.004004/updates_spamassassin_org/60_whitelist_dkim.cf
info: config: failed to parse line, skipping, in
"/var/lib/spamassassin/3.004004/updates_spamassassin_org/60_whitelist_dkim.cf":
def_whitelist_from_dkim *@*.ebay.com ebay.com
... etc. etc.

--- snip --

no such errors after swapping out the else as listed above...


Thoughts?

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to