Re: [Exim] acl drop bug ?

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: Nico Erfurth, Jean-Louis Bergamo
CC: exim-users
Subject: Re: [Exim] acl drop bug ?
On Fri, 14 May 2004, Nico Erfurth wrote:

> I just looked over it and it seems like that drop isn't handle the same
> way in a data-acl, as it is in the other ACL. At least I see nothing
> that could handle a FAIL_DROP there. Maybe the buffer isn't flushed in
> this case? I'm not sure and I don't have time to look closer into it.


Thanks, Nico. I think you are right. Jean-Louis, please try this patch:
In the daemon.c source file, around line 451, there is this code

    if ((rc = smtp_setup_msg()) > 0)
      {
      BOOL ok = receive_msg(FALSE);
      search_tidyup();                    /* Close cached databases */
      if (!ok) _exit(EXIT_SUCCESS);       /* Connection was dropped */
      if (message_id[0] == 0) continue;   /* No message was accepted */
      }


Change the 3rd-last line to

      if (!ok)
        {
        mac_smtp_fflush();
        _exit(EXIT_SUCCESS);
        }


So the whole fragment should read

    if ((rc = smtp_setup_msg()) > 0)
      {
      BOOL ok = receive_msg(FALSE);
      search_tidyup();                    /* Close cached databases */
      if (!ok)
        {
        mac_smtp_fflush();
        _exit(EXIT_SUCCESS);
        }
      if (message_id[0] == 0) continue;   /* No message was accepted */
      }


Does this fix the problem?

Philip

--
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.