[exim-dev] [Bug 934] New: HAVE_SENDFILE breaks DKIM

Top Page
Delete this message
Reply to this message
Author: Wolfgang Breyha
Date:  
To: exim-dev
New-Topics: [exim-dev] [Bug 934] HAVE_SENDFILE breaks DKIM, [exim-dev] [Bug 934] HAVE_SENDFILE breaks DKIM, [exim-dev] [Bug 934] HAVE_SENDFILE breaks DKIM, [exim-dev] [Bug 934] HAVE_SENDFILE breaks DKIM, [exim-dev] [Bug 934] HAVE_SENDFILE breaks DKIM, [exim-dev] [Bug 934] HAVE_SENDFILE breaks DKIM
Subject: [exim-dev] [Bug 934] New: HAVE_SENDFILE breaks DKIM
------- You are receiving this mail because: -------
You are on the CC list for the bug.

http://bugs.exim.org/show_bug.cgi?id=934
           Summary: HAVE_SENDFILE breaks DKIM
           Product: Exim
           Version: 4.70
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: bug
          Priority: medium
         Component: Transports
        AssignedTo: nigel@???
        ReportedBy: wbreyha@???
                CC: exim-dev@???



Created an attachment (id=366)
--> (http://bugs.exim.org/attachment.cgi?id=366)
s/SEEK_CUR/SEEK_END/

Building Exim with HAVE_SENDFILE defined breaks sending unsigned mails in case
dkim_private_key is not found.

I've defined
dkim_private_key = ${ ... something expandable }

But not all domains have a key and so DKIM sometimes fails to find the key.

If HAVE_SENDFILE was used to build exim there is the part

/* Fetch file positition (the size) */
size = lseek(dkim_fd,0,SEEK_CUR);

in transport.c:1063ff.

That works if the key was found and the mail was signed since the filepointer
stands at the end of the file. If the key is not found the filepointer remained
at the beginning of the file resulting in size = 0.

exim hangs afterwards and waits forever. Seems the final "." is missing in this
case.

A quick fix was to use SEEK_END instead of SEEK_CUR. Don't know if this is the
best solution so far.

Another fix is to not use HAVE_SENDFILE;-)


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