https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6278

           Summary: Break recursion on attempt to add _ADDEDHEADER_ into a
                    header section
           Product: Spamassassin
           Version: 3.3.0
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P5
         Component: Libraries
        AssignedTo: [email protected]
        ReportedBy: [email protected]


Created an attachment (id=4623)
 --> (https://issues.apache.org/SpamAssassin/attachment.cgi?id=4623)
proposed patch

With a change in Bug 6185    I introduced three new tags:
ADDEDHEADER, ADDEDHEADERHAM, ADDEDHEADER, which offer a clean way
to obtain all newly added header fields with a get_tag()  (useful
for some plugin, or to a caller of SpamAssassin through API).

There is however a tricky case if someone (out of curiosity or
experimentation) tries to include them recursively with the add_header
configuration directive, i.e. include a header which itself contains
all included headers, which leads to an infinite recursion.

A nice way to resolve this would be to somehow pass-on the set of
tags that get_tag is currently working on (recursively). This would
probably need adding another argument to _get_tag, _get_added_fields,
_process_header and the _replace_tag, which looks like an excessive
change for a case which never occurs in practice.

To keep it simple, I decided to choose a pragmatic approach and just
prevent these three tags from getting expanded by _replace_tag.
The patch is pretty simple and unintrusive, so I believe it should
go into the 3.3.0.

-- 
Configure bugmail: 
https://issues.apache.org/SpamAssassin/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Reply via email to