[exim-dev] [Bug 1445] New: segfaults when verify = recipien…

Top Page
Delete this message
Reply to this message
Author: Heiko Schlittermann
Date:  
To: exim-dev
Subject: [exim-dev] [Bug 1445] New: segfaults when verify = recipient/callout without configured smtp transport
------- You are receiving this mail because: -------
You are on the CC list for the bug.

http://bugs.exim.org/show_bug.cgi?id=1445
           Summary: segfaults when verify = recipient/callout without
                    configured smtp transport
           Product: Exim
           Version: 4.82
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: bug
          Priority: medium
         Component: General execution
        AssignedTo: nigel@???
        ReportedBy: hs+exim@???
                CC: exim-dev@???



Created an attachment (id=692)
--> (http://bugs.exim.org/attachment.cgi?id=692)
a possible fix, to be reviewed.

Hi,
if the router, which is selected for callout, is not configured with an
smtp transport, the callout verification leads to a segmentation fault.

This happens, because in verify.c the callout setup code blindly assumes that
the transport is an SMTP transport - and casts the transport block options
into an options block for SMTP.

This works as long as the transport options are really SMTP options.
Under under conditions it may have unexpected results.

To reproduce the bug use the following minimalistic configuration:

--
acl_smtp_rcpt = accept verify = recipient/callout

begin routers
    foo:
        driver = dnslookup
        transport = bar


begin transports
    bar:
        driver = pipe
        command = true
--


and
swaks --pipe 'exim -C minimal.conf -bhc 8.8.8.8' -f ... -t ...

(to exhibit the behaviour: the server connected for verification needs to
support ESMTP)

And, it's not sure that on all platforms the result is a segfault. Probably it
depends on the memory layout.


--
Configure bugmail: http://bugs.exim.org/userprefs.cgi?tab=email