[Dovecot] data corruption in delivery agent when forwarding

Joshua Goodall joshua at roughtrade.net
Wed Jul 19 12:30:28 EEST 2006


Hi Timo

I've been seeing data corruption in the lda when forwarding mail. I think
it's due to confused file pointers.  (this is all maildirs on nfs)

Anyway the following patch fixes it, and also looks a bit more like the
old dovecot-lda module, by getting the Return-Path header before
getting the input stream:


Index: mail-send.c
===================================================================
RCS file: /home/cvs/dovecot/src/deliver/mail-send.c,v
retrieving revision 1.1.2.1
diff -u -r1.1.2.1 mail-send.c
--- mail-send.c	11 Jun 2006 11:10:55 -0000	1.1.2.1
+++ mail-send.c	19 Jul 2006 09:28:18 -0000
@@ -116,16 +116,17 @@
     struct smtp_client *smtp_client;
     FILE *f;
     const unsigned char *data;
+    const char *return_path;
     size_t size;
     int ret;
 
+    return_path = mail_get_first_header(mail, "Return-Path");
+
     input = mail_get_stream(mail, NULL, NULL);
     if (input == NULL)
 	    return -1;
 
-    smtp_client = smtp_client_open(forwardto,
-				   mail_get_first_header(mail, "Return-Path"),
-				   &f);
+    smtp_client = smtp_client_open(forwardto, return_path, &f);
 
     input = i_stream_create_header_filter(input, HEADER_FILTER_EXCLUDE |
                                           HEADER_FILTER_NO_CR, hide_headers,


best regards as ever

/k

-- 
Josh "Koshua" Goodall                      "as modern as tomorrow afternoon"
joshua at roughtrade.net                                       - FW109


More information about the dovecot mailing list