[exim-cvs] Fix crash in mime acl when a parameter is zero-le…

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Exim Git Commits Mailing List
Date:  
À: exim-cvs
Sujet: [exim-cvs] Fix crash in mime acl when a parameter is zero-length
Gitweb: http://git.exim.org/exim.git/commitdiff/93cad488cb2c9a31aea345c8910a9f9c5815071c
Commit:     93cad488cb2c9a31aea345c8910a9f9c5815071c
Parent:     430f98cb1e35e925f6b3ca54375411ff67e8895b
Author:     Jeremy Harris <jgh146exb@???>
AuthorDate: Fri Aug 29 14:11:50 2014 +0100
Committer:  Jeremy Harris <jgh146exb@???>
CommitDate: Fri Aug 29 18:59:27 2014 +0100


    Fix crash in mime acl when a parameter is zero-length
---
 src/src/mime.c                                     |   18 ++-
 src/src/mime.h                                     |   10 +-
 test/confs/4000                                    |   37 +----
 test/log/4000                                      |   27 +---
 test/log/{4000 => 4010}                            |    0
 test/mail/4000.userx                               |  190 ++------------------
 test/mail/{4000.userx => 4010.userx}               |    0
 test/rejectlog/{4000 => 4010}                      |    0
 test/scripts/4000-scanning/4000                    |  145 ++-------------
 test/scripts/4000-scanning/REQUIRES                |    2 -
 .../4000 => 4010-scan-external/4010}               |    0
 .../{4000-scanning => 4010-scan-external}/REQUIRES |    0
 test/stdout/4000                                   |   56 +------
 test/stdout/{4000 => 4010}                         |    0
 14 files changed, 58 insertions(+), 427 deletions(-)


diff --git a/src/src/mime.c b/src/src/mime.c
index 95d3da4..ab701f2 100644
--- a/src/src/mime.c
+++ b/src/src/mime.c
@@ -620,12 +620,18 @@ NEXT_PARAM_SEARCH:
         else
           param_value = string_cat(param_value, &size, &ptr, q++, 1);
         }
-          param_value[ptr++] = '\0';
-          param_value_len = ptr;
-
-          param_value = rfc2047_decode(param_value, check_rfc2047_length, NULL, 32, &param_value_len, &q);
-          debug_printf("Found %s MIME parameter in %s header, value is '%s'\n", mp->name, mime_header_list[i].name, param_value);
-          *((uschar **)(mp->value)) = param_value;
+          if (param_value)
+        {
+        param_value[ptr++] = '\0';
+        param_value_len = ptr;
+
+        param_value = rfc2047_decode(param_value,
+              check_rfc2047_length, NULL, 32, &param_value_len, &q);
+        debug_printf("Found %s MIME parameter in %s header, "
+              "value is '%s'\n", mp->name, mime_header_list[i].name,
+              param_value);
+        }
+          *mp->value = param_value;
           p += (mp->namelen + param_value_len + 1);
           goto NEXT_PARAM_SEARCH;
         }
diff --git a/src/src/mime.h b/src/src/mime.h
index abf68da..af09f67 100644
--- a/src/src/mime.h
+++ b/src/src/mime.h
@@ -40,15 +40,15 @@ static int mime_header_list_size = sizeof(mime_header_list)/sizeof(mime_header);



 typedef struct mime_parameter {
-  uschar *name;
-  int    namelen;
-  void   *value;
+  uschar *  name;
+  int       namelen;
+  uschar ** value;
 } mime_parameter;


 static mime_parameter mime_parameter_list[] = {
-  { US"name=", 5, &mime_filename },
+  { US"name=",     5, &mime_filename },
   { US"filename=", 9, &mime_filename },
-  { US"charset=", 8, &mime_charset },
+  { US"charset=",  8, &mime_charset },
   { US"boundary=", 9, &mime_boundary }
 };


diff --git a/test/confs/4000 b/test/confs/4000
index daf5a68..febe9a5 100644
--- a/test/confs/4000
+++ b/test/confs/4000
@@ -12,41 +12,14 @@ gecos_name = CALLER_NAME

# ----- Main settings -----

-acl_smtp_rcpt = check_rcpt
-acl_smtp_data = check_data
-acl_not_smtp = check_data
+acl_smtp_rcpt = accept
acl_smtp_mime = check_mime
-acl_not_smtp_mime = check_mime
-
-av_scanner = clamd:CLAMSOCKET


# ----- ACL -----

begin acl

-check_rcpt:
-  accept
-
-check_data:
-  deny     message = Found $malware_name
-           malware = *
-
-  warn     spam    = nobody
-
-  warn     set acl_m0 = $spam_score_int
-
-  warn     message = X-Regex: Regex matched
-           regex   = THIS REGEX
-
-  warn     condition = ${if !eq{$h_fakereject:}{}}
-           control   = fakereject
-
-  warn     condition = ${if !eq{$h_fakedefer:}{}}
-           control   = fakedefer
-
-  accept
-
 check_mime:
   warn     decode  = default
            add_header = X-$mime_part_count-content-type: $mime_content_type\n\
@@ -62,10 +35,6 @@ check_mime:
                         X-$mime_part_count-is-rfc822: $mime_is_rfc822\n\
                         X-$mime_part_count-decode-filename: $mime_decoded_filename\n\
                         X-$mime_part_count-content-size: $mime_content_size
-  warn     mime_regex = (?s)\
-                        (?=Test quoted-printable =)\
-                        (?=.*?Continued line with this)
-           add_header = X-mime-regex: matched
   accept



@@ -76,10 +45,6 @@ begin routers
 r1:
   driver = accept
   transport = t1
-  headers_add = X-Router-SSint: \
-                ${if eq {$spam_score_int}{$acl_m0}\
-                {was preserved}{was not preserver}}
-


# ----- Transports -----

diff --git a/test/log/4000 b/test/log/4000
index b48693d..c5d503a 100644
--- a/test/log/4000
+++ b/test/log/4000
@@ -1,25 +1,6 @@
-1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@??? U=CALLER P=local-esmtp S=sss
+1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@??? U=CALLER P=local-esmtp S=sss id=20041217133501.GA3058@???
+1999-03-02 09:44:33 10HmaX-0005vi-00 => userx <userx@???> R=r1 T=t1
+1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
+1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@??? U=CALLER P=local-esmtp S=sss id=20041217133501.GA3058@???
 1999-03-02 09:44:33 10HmaY-0005vi-00 => userx <userx@???> R=r1 T=t1
 1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
-1999-03-02 09:44:33 10HmaZ-0005vi-00 <= CALLER@??? U=CALLER P=local-esmtp S=sss id=41C2F849.3060203@???
-1999-03-02 09:44:33 10HmaZ-0005vi-00 => userx <userx@???> R=r1 T=t1
-1999-03-02 09:44:33 10HmaZ-0005vi-00 Completed
-1999-03-02 09:44:33 10HmbA-0005vi-00 <= CALLER@??? U=CALLER P=local-esmtp S=sss id=abcde
-1999-03-02 09:44:33 10HmbA-0005vi-00 => userx <userx@???> R=r1 T=t1
-1999-03-02 09:44:33 10HmbA-0005vi-00 Completed
-1999-03-02 09:44:33 10HmbB-0005vi-00 <= CALLER@??? U=CALLER P=local-esmtp S=sss id=41C2F849.3060203@???
-1999-03-02 09:44:33 10HmbB-0005vi-00 => userx <userx@???> R=r1 T=t1
-1999-03-02 09:44:33 10HmbB-0005vi-00 Completed
-1999-03-02 09:44:33 10HmbC-0005vi-00 <= CALLER@??? U=CALLER P=local-esmtp S=sss id=20041217133501.GA3058@???
-1999-03-02 09:44:33 10HmbC-0005vi-00 => userx <userx@???> R=r1 T=t1
-1999-03-02 09:44:33 10HmbC-0005vi-00 Completed
-1999-03-02 09:44:33 10HmbD-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
-1999-03-02 09:44:33 10HmbD-0005vi-00 => userx <userx@???> R=r1 T=t1
-1999-03-02 09:44:33 10HmbD-0005vi-00 Completed
-1999-03-02 09:44:33 10HmbE-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss id=20041217133501.GA3058@???
-1999-03-02 09:44:33 10HmbE-0005vi-00 => userx <userx@???> R=r1 T=t1
-1999-03-02 09:44:33 10HmbE-0005vi-00 Completed
-1999-03-02 09:44:33 10HmbF-0005vi-00 <= CALLER@??? U=CALLER P=local-esmtp S=sss id=41C2F849.3060203@???
-1999-03-02 09:44:33 10HmbF-0005vi-00 => userx <userx@???> R=r1 T=t1
-1999-03-02 09:44:33 10HmbF-0005vi-00 Completed
-1999-03-02 09:44:33 10HmaX-0005vi-00 U=CALLER F=<CALLER@???> rejected after DATA: Found Eicar-Test-Signature
diff --git a/test/log/4000 b/test/log/4010
similarity index 100%
copy from test/log/4000
copy to test/log/4010
diff --git a/test/mail/4000.userx b/test/mail/4000.userx
index 34c51cc..ec9b2cb 100644
--- a/test/mail/4000.userx
+++ b/test/mail/4000.userx
@@ -2,71 +2,7 @@ From CALLER@??? Tue Mar 02 09:44:33 1999
 Received: from CALLER (helo=test.ex)
     by myhost.test.ex with local-esmtp (Exim x.yz)
     (envelope-from <CALLER@???>)
-    id 10HmaY-0005vi-00
-    for userx@???; Tue, 2 Mar 1999 09:44:33 +0000
-Message-Id: <E10HmaY-0005vi-00@???>
-From: CALLER_NAME <CALLER@???>
-Date: Tue, 2 Mar 1999 09:44:33 +0000
-X-Router-SSint: was preserved
-
-A message without any headers.
-
-From CALLER@??? Tue Mar 02 09:44:33 1999
-Received: from CALLER (helo=test.ex)
-    by myhost.test.ex with local-esmtp (Exim x.yz)
-    (envelope-from <CALLER@???>)
-    id 10HmaZ-0005vi-00
-    for userx@???; Tue, 2 Mar 1999 09:44:33 +0000
-From: Test person <tp@???>
-To: Me <userx@???>
-Subject: A real test message
-Date: Tue, 2 Mar 1999 09:44:33 +0000
-Message-ID: <41C2F849.3060203@???>
-Sender: CALLER_NAME <CALLER@???>
-X-Router-SSint: was preserved
-
-OK, this should look like a genuine message.
-
-From CALLER@??? Tue Mar 02 09:44:33 1999
-Received: from CALLER (helo=test.ex)
-    by myhost.test.ex with local-esmtp (Exim x.yz)
-    (envelope-from <CALLER@???>)
-    id 10HmbA-0005vi-00
-    for userx@???; Tue, 2 Mar 1999 09:44:33 +0000
-From: 99Junk99@???
-To:
-Subject: MAKE MONEY FAST!!!!
-Message-id: abcde
-Sender: CALLER_NAME <CALLER@???>
-Date: Tue, 2 Mar 1999 09:44:33 +0000
-X-Router-SSint: was preserved
-
-This should be enough to trip the threshold.
-
-From CALLER@??? Tue Mar 02 09:44:33 1999
-Received: from CALLER (helo=test.ex)
-    by myhost.test.ex with local-esmtp (Exim x.yz)
-    (envelope-from <CALLER@???>)
-    id 10HmbB-0005vi-00
-    for userx@???; Tue, 2 Mar 1999 09:44:33 +0000
-From: Test person <tp@???>
-To: Me <userx@???>
-Subject: A real test message
-Date: Tue, 2 Mar 1999 09:44:33 +0000
-Message-ID: <41C2F849.3060203@???>
-FakeReject: test fakereject
-Sender: CALLER_NAME <CALLER@???>
-X-Regex: Regex matched
-X-Router-SSint: was preserved
-
-OK, this should look like a genuine message, but
-it will trip on THIS REGEX.
-
-From CALLER@??? Tue Mar 02 09:44:33 1999
-Received: from CALLER (helo=test.ex)
-    by myhost.test.ex with local-esmtp (Exim x.yz)
-    (envelope-from <CALLER@???>)
-    id 10HmbC-0005vi-00
+    id 10HmaX-0005vi-00
     for userx@???; Tue, 2 Mar 1999 09:44:33 +0000
 Date: Tue, 2 Mar 1999 09:44:33 +0000
 From: J Caesar <jcaesar@???>
@@ -92,7 +28,7 @@ X-0-content-description:
 X-0-is-multipart: 1
 X-0-is-coverletter: 1
 X-0-is-rfc822: 0
-X-0-decode-filename: TESTSUITE/spool/scan/10HmbC-0005vi-00/10HmbC-0005vi-00-00000
+X-0-decode-filename: TESTSUITE/spool/scan/10HmaX-0005vi-00/10HmaX-0005vi-00-00000
 X-0-content-size: 2
 X-1-content-type: text/plain
 X-1-filename: 
@@ -105,9 +41,8 @@ X-1-content-description:
 X-1-is-multipart: 0
 X-1-is-coverletter: 1
 X-1-is-rfc822: 0
-X-1-decode-filename: TESTSUITE/spool/scan/10HmbC-0005vi-00/10HmbC-0005vi-00-00001
+X-1-decode-filename: TESTSUITE/spool/scan/10HmaX-0005vi-00/10HmaX-0005vi-00-00001
 X-1-content-size: 1
-X-mime-regex: matched
 X-2-content-type: text/plain
 X-2-filename: 
 X-2-charset: us-ascii
@@ -119,7 +54,7 @@ X-2-content-description:
 X-2-is-multipart: 0
 X-2-is-coverletter: 0
 X-2-is-rfc822: 0
-X-2-decode-filename: TESTSUITE/spool/scan/10HmbC-0005vi-00/10HmbC-0005vi-00-00002
+X-2-decode-filename: TESTSUITE/spool/scan/10HmaX-0005vi-00/10HmaX-0005vi-00-00002
 X-2-content-size: 1
 X-3-content-type: text/plain
 X-3-filename: working-patch
@@ -132,7 +67,7 @@ X-3-content-description:
 X-3-is-multipart: 0
 X-3-is-coverletter: 0
 X-3-is-rfc822: 0
-X-3-decode-filename: TESTSUITE/spool/scan/10HmbC-0005vi-00/10HmbC-0005vi-00-00003
+X-3-decode-filename: TESTSUITE/spool/scan/10HmaX-0005vi-00/10HmaX-0005vi-00-00003
 X-3-content-size: 1
 X-4-content-type: text/plain
 X-4-filename: 
@@ -145,9 +80,8 @@ X-4-content-description:
 X-4-is-multipart: 0
 X-4-is-coverletter: 0
 X-4-is-rfc822: 0
-X-4-decode-filename: TESTSUITE/spool/scan/10HmbC-0005vi-00/10HmbC-0005vi-00-00004
+X-4-decode-filename: TESTSUITE/spool/scan/10HmaX-0005vi-00/10HmaX-0005vi-00-00004
 X-4-content-size: 1
-X-Router-SSint: was preserved


--T4sUOijqQbZv57TR
Content-Type: text/plain; charset=US-ASCII
@@ -198,21 +132,10 @@ Content-Disposition: inline
--T4sUOijqQbZv57TR--

 From CALLER@??? Tue Mar 02 09:44:33 1999
-Received: from CALLER by myhost.test.ex with local (Exim x.yz)
-    (envelope-from <CALLER@???>)
-    id 10HmbD-0005vi-00
-    for userx@???; Tue, 2 Mar 1999 09:44:33 +0000
-Message-Id: <E10HmbD-0005vi-00@???>
-From: CALLER_NAME <CALLER@???>
-Date: Tue, 2 Mar 1999 09:44:33 +0000
-X-Router-SSint: was preserved
-
-A message without any headers.
-
-From CALLER@??? Tue Mar 02 09:44:33 1999
-Received: from CALLER by myhost.test.ex with local (Exim x.yz)
+Received: from CALLER (helo=test.ex)
+    by myhost.test.ex with local-esmtp (Exim x.yz)
     (envelope-from <CALLER@???>)
-    id 10HmbE-0005vi-00
+    id 10HmaY-0005vi-00
     for userx@???; Tue, 2 Mar 1999 09:44:33 +0000
 Date: Tue, 2 Mar 1999 09:44:33 +0000
 From: J Caesar <jcaesar@???>
@@ -221,11 +144,7 @@ Message-ID: <20041217133501.GA3058@???>
 Mime-Version: 1.0
 Content-Type: multipart/mixed; boundary="T4sUOijqQbZv57TR"
 Content-Disposition: inline
-Subject: [exim] Re: Bug#286074: eximstats: uses message count as data for
-    the "volume" charts
-X-BeenThere: a-list00@???
-X-Mailman-Version: 2.1.5
-Precedence: list
+Subject: Nasty
 Sender: CALLER_NAME <CALLER@???>
 X-0-content-type: multipart/mixed
 X-0-filename: 
@@ -238,103 +157,26 @@ X-0-content-description:
 X-0-is-multipart: 1
 X-0-is-coverletter: 1
 X-0-is-rfc822: 0
-X-0-decode-filename: TESTSUITE/spool/scan/10HmbE-0005vi-00/10HmbE-0005vi-00-00000
+X-0-decode-filename: TESTSUITE/spool/scan/10HmaY-0005vi-00/10HmaY-0005vi-00-00000
 X-0-content-size: 1
 X-1-content-type: text/plain
 X-1-filename: 
-X-1-charset: us-ascii
+X-1-charset: 
 X-1-boundary: 
-X-1-content-disposition: inline
+X-1-content-disposition: 
 X-1-content-transfer-encoding: 
 X-1-content-id: 
 X-1-content-description: 
 X-1-is-multipart: 0
 X-1-is-coverletter: 1
 X-1-is-rfc822: 0
-X-1-decode-filename: TESTSUITE/spool/scan/10HmbE-0005vi-00/10HmbE-0005vi-00-00001
+X-1-decode-filename: TESTSUITE/spool/scan/10HmaY-0005vi-00/10HmaY-0005vi-00-00001
 X-1-content-size: 1
-X-2-content-type: text/plain
-X-2-filename: working-patch
-X-2-charset: us-ascii
-X-2-boundary: 
-X-2-content-disposition: attachment
-X-2-content-transfer-encoding: 
-X-2-content-id: 
-X-2-content-description: 
-X-2-is-multipart: 0
-X-2-is-coverletter: 0
-X-2-is-rfc822: 0
-X-2-decode-filename: TESTSUITE/spool/scan/10HmbE-0005vi-00/10HmbE-0005vi-00-00002
-X-2-content-size: 1
-X-3-content-type: text/plain
-X-3-filename: 
-X-3-charset: us-ascii
-X-3-boundary: 
-X-3-content-disposition: inline
-X-3-content-transfer-encoding: 7bit
-X-3-content-id: 
-X-3-content-description: 
-X-3-is-multipart: 0
-X-3-is-coverletter: 0
-X-3-is-rfc822: 0
-X-3-decode-filename: TESTSUITE/spool/scan/10HmbE-0005vi-00/10HmbE-0005vi-00-00003
-X-3-content-size: 1
-X-Router-SSint: was preserved
-
---T4sUOijqQbZv57TR
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline
-
-There was a part of the patch missing, complete one is attached.
-     sorry for wasting your time
-
---T4sUOijqQbZv57TR
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: attachment; filename=working-patch
-
---- /usr/sbin/eximstats 2004-12-17 13:36:44.381983753 +0100
-+++ eximstats    2004-12-17 13:47:37.763185260 +0100
-@@ -1107,11 +1107,11 @@
-   if (scalar @chartdatanames < $ntopchart)
-     {
-     push(@chartdatanames, $key);
--    push(@chartdatavals, $$m_count{$key});
-+    push(@chartdatavals, $$m_data{$key});
-     }
-   else
-     {
--    $chartotherval += $$m_count{$key};
-+    $chartotherval += $$m_data{$key};
-     }
-   }
- push(@chartdatanames, "Other");


--T4sUOijqQbZv57TR
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
+Content-Type: text/plain; charset=

---
+foobar

--T4sUOijqQbZv57TR--

-From CALLER@??? Tue Mar 02 09:44:33 1999
-Received: from CALLER (helo=test.ex)
-    by myhost.test.ex with local-esmtp (Exim x.yz)
-    (envelope-from <CALLER@???>)
-    id 10HmbF-0005vi-00
-    for userx@???; Tue, 2 Mar 1999 09:44:33 +0000
-From: Test person <tp@???>
-To: Me <userx@???>
-Subject: A real test message
-Date: Tue, 2 Mar 1999 09:44:33 +0000
-Message-ID: <41C2F849.3060203@???>
-FakeDefer: test fakedefer
-Sender: CALLER_NAME <CALLER@???>
-X-Regex: Regex matched
-X-Router-SSint: was preserved
-
-OK, this should look like a genuine message, but
-it will trip on THIS REGEX.
-
diff --git a/test/mail/4000.userx b/test/mail/4010.userx
similarity index 100%
copy from test/mail/4000.userx
copy to test/mail/4010.userx
diff --git a/test/rejectlog/4000 b/test/rejectlog/4010
similarity index 100%
rename from test/rejectlog/4000
rename to test/rejectlog/4010
diff --git a/test/scripts/4000-scanning/4000 b/test/scripts/4000-scanning/4000
index 6f66b27..649f982 100644
--- a/test/scripts/4000-scanning/4000
+++ b/test/scripts/4000-scanning/4000
@@ -1,61 +1,7 @@
-# Basic exiscan feature tests
-echo ==> This test may take a bit of time, depending on exactly
-echo ==> how your SpamAssassin is configured.
-exim -odi -bs
-ehlo test.ex
-mail from:<>
-rcpt to:<userx@???>
-data
-A message without any headers.
-.
-quit
-****
-exim -odi -bs
-ehlo test.ex
-mail from:<>
-rcpt to:<userx@???>
-data
-From: Test person <tp@???>
-To: Me <userx@???>
-Subject: A real test message
-Date: Fri, 17 Dec 2004 16:13:04 +0100
-Message-ID: <41C2F849.3060203@???>
-
-OK, this should look like a genuine message.
-.
-quit
-****
-exim -odi -bs
-ehlo test.ex
-mail from:<>
-rcpt to:<userx@???>
-data
-From: 99Junk99@???
-To:
-Subject: MAKE MONEY FAST!!!!
-Message-id: abcde
-
-This should be enough to trip the threshold.
-.
-quit
-****
-exim -odi -bs
-ehlo test.ex
-mail from:<>
-rcpt to:<userx@???>
-data
-From: Test person <tp@???>
-To: Me <userx@???>
-Subject: A real test message
-Date: Fri, 17 Dec 2004 16:13:04 +0100
-Message-ID: <41C2F849.3060203@???>
-FakeReject: test fakereject
-
-OK, this should look like a genuine message, but
-it will trip on THIS REGEX.
-.
-quit
-****
+# mime boundaries
+#
+# This mail should be fine, if complex
+#
 exim -odi -bs
 ehlo test.ex
 mail from:<>
@@ -124,13 +70,15 @@ Content-Disposition: inline
 .
 quit
 ****
-# Non-smtp message 
-exim -odi userx@???
-A message without any headers.
-.
-****
-# Non-smtp MIME message
-exim -odi userx@???
+#
+#
+# This one has a rotten parameter, but should not induce a crash
+#
+exim -odi -bs
+ehlo test.ex
+mail from:<>
+rcpt to:<userx@???>
+data
 Date: Fri, 17 Dec 2004 14:35:01 +0100
 From: J Caesar <jcaesar@???>
 To: a-list00@???
@@ -138,75 +86,14 @@ Message-ID: <20041217133501.GA3058@???>
 Mime-Version: 1.0
 Content-Type: multipart/mixed; boundary="T4sUOijqQbZv57TR"
 Content-Disposition: inline
-Subject: [exim] Re: Bug#286074: eximstats: uses message count as data for
-    the "volume" charts
-X-BeenThere: a-list00@???
-X-Mailman-Version: 2.1.5
-Precedence: list
+Subject: Nasty


 --T4sUOijqQbZv57TR
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline
-
-There was a part of the patch missing, complete one is attached.
-     sorry for wasting your time
-
---T4sUOijqQbZv57TR
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: attachment; filename=working-patch
+Content-Type: text/plain; charset=


---- /usr/sbin/eximstats 2004-12-17 13:36:44.381983753 +0100
-+++ eximstats    2004-12-17 13:47:37.763185260 +0100
-@@ -1107,11 +1107,11 @@
-   if (scalar @chartdatanames < $ntopchart)
-     {
-     push(@chartdatanames, $key);
--    push(@chartdatavals, $$m_count{$key});
-+    push(@chartdatavals, $$m_data{$key});
-     }
-   else
-     {
--    $chartotherval += $$m_count{$key};
-+    $chartotherval += $$m_data{$key};
-     }
-   }
- push(@chartdatanames, "Other");
-
---T4sUOijqQbZv57TR
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
--- 
+foobar


--T4sUOijqQbZv57TR--
-****
-exim -odi -bs
-ehlo test.ex
-mail from:<>
-rcpt to:<userx@???>
-data
-From: Test person <tp@???>
-To: Me <userx@???>
-Subject: A real test message
-Date: Fri, 17 Dec 2004 16:13:04 +0100
-Message-ID: <41C2F849.3060203@???>
-FakeDefer: test fakedefer
-
-OK, this should look like a genuine message, but
-it will trip on THIS REGEX.
-.
-quit
-****
-# Very simple virus test
-exim -odi -bs
-mail from:<>
-rcpt to:<userx@???>
-data
-Subject: a virus test
-
-X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
.
quit
****
diff --git a/test/scripts/4000-scanning/REQUIRES b/test/scripts/4000-scanning/REQUIRES
index 3f00295..11ed161 100644
--- a/test/scripts/4000-scanning/REQUIRES
+++ b/test/scripts/4000-scanning/REQUIRES
@@ -1,3 +1 @@
support Content_Scanning
-running SpamAssassin
-running ClamAV
diff --git a/test/scripts/4000-scanning/4000 b/test/scripts/4010-scan-external/4010
similarity index 100%
copy from test/scripts/4000-scanning/4000
copy to test/scripts/4010-scan-external/4010
diff --git a/test/scripts/4000-scanning/REQUIRES b/test/scripts/4010-scan-external/REQUIRES
similarity index 100%
copy from test/scripts/4000-scanning/REQUIRES
copy to test/scripts/4010-scan-external/REQUIRES
diff --git a/test/stdout/4000 b/test/stdout/4000
index 819f449..789a8fe 100644
--- a/test/stdout/4000
+++ b/test/stdout/4000
@@ -1,70 +1,22 @@
220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
250-myhost.test.ex Hello CALLER at test.ex
250-SIZE 52428800
+250-8BITMIME
250-PIPELINING
250 HELP
250 OK
250 Accepted
354 Enter message, ending with "." on a line by itself
-250 OK id=10HmaY-0005vi-00
-221 myhost.test.ex closing connection
-220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
-250-myhost.test.ex Hello CALLER at test.ex
-250-SIZE 52428800
-250-PIPELINING
-250 HELP
-250 OK
-250 Accepted
-354 Enter message, ending with "." on a line by itself
-250 OK id=10HmaZ-0005vi-00
-221 myhost.test.ex closing connection
-220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
-250-myhost.test.ex Hello CALLER at test.ex
-250-SIZE 52428800
-250-PIPELINING
-250 HELP
-250 OK
-250 Accepted
-354 Enter message, ending with "." on a line by itself
-250 OK id=10HmbA-0005vi-00
+250 OK id=10HmaX-0005vi-00
221 myhost.test.ex closing connection
220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
250-myhost.test.ex Hello CALLER at test.ex
250-SIZE 52428800
+250-8BITMIME
250-PIPELINING
250 HELP
250 OK
250 Accepted
354 Enter message, ending with "." on a line by itself
-550-Your message has been rejected but is being kept for evaluation.
-550-If it was a legitimate message, it may still be delivered to the target
-550 recipient(s).
-221 myhost.test.ex closing connection
-220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
-250-myhost.test.ex Hello CALLER at test.ex
-250-SIZE 52428800
-250-PIPELINING
-250 HELP
-250 OK
-250 Accepted
-354 Enter message, ending with "." on a line by itself
-250 OK id=10HmbC-0005vi-00
-221 myhost.test.ex closing connection
-220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
-250-myhost.test.ex Hello CALLER at test.ex
-250-SIZE 52428800
-250-PIPELINING
-250 HELP
-250 OK
-250 Accepted
-354 Enter message, ending with "." on a line by itself
-450-Your message has been rejected but is being kept for evaluation.
-450-If it was a legitimate message, it may still be delivered to the target
-450 recipient(s).
-221 myhost.test.ex closing connection
-220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
-250 OK
-250 Accepted
-354 Enter message, ending with "." on a line by itself
-550 Found Eicar-Test-Signature
+250 OK id=10HmaY-0005vi-00
221 myhost.test.ex closing connection
diff --git a/test/stdout/4000 b/test/stdout/4010
similarity index 100%
copy from test/stdout/4000
copy to test/stdout/4010