Hello,

since exim 4.75, my pipe transport is not able to transfer more than 64kB of data. It is configured as follows:

e2s_transport:
  driver = pipe
  ignore_status = true
  path = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin
  command = /usr/bin/email2system $address_data
  max_output = 50M
  user = mail
  group = mail
  initgroups = true
  home_directory = /var/spool/mail

In the shell script /usr/bin/email2system, I use "tee" to read the data from standard input and to save it into a file ("tee" because I also send it to a shell function for further processing). From exim 4.75 on, this file receives at most 65536 bytes.

I tracked down the problem to the following line in src/child.c, introduced in exim 4.75 (line 343, line 341 in exim 4.80):

 signal(SIGPIPE, SIG_DFL);

If I remove this line in current exim 4.80, everything works as expected. So I think that enabling default handling for SIGPIPE is wrong as it leads to data loss.

What do you think?


Regards,

Christoph

Attachment: pgpPd8B1hxmAQ.pgp
Description: Digitale PGP-Signatur

-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim 
details at http://www.exim.org/ ##

Reply via email to