1 MIME-Version: 1.0 2 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0" 3 4 ------- =_aaaaaaaaaa0 5 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa1" 6 Content-ID: <20592.1022586929.1 (a] example.com> 7 8 ------- =_aaaaaaaaaa1 9 Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa2" 10 Content-ID: <20592.1022586929.2 (a] example.com> 11 12 ------- =_aaaaaaaaaa2 13 Content-Type: text/plain 14 Content-ID: <20592.1022586929.3 (a] example.com> 15 Content-Description: very tricky 16 Content-Transfer-Encoding: 7bit 17 18 19 Unlike the test test_nested-multiples-with-internal-boundary, this 20 piece of text not only contains the outer boundary tags 21 ------- =_aaaaaaaaaa1 22 and 23 ------- =_aaaaaaaaaa0 24 but puts them at the start of a line! And, to be even nastier, it 25 even includes a couple of end tags, such as this one: 26 27 ------- =_aaaaaaaaaa1-- 28 29 and this one, which is from a multipart we haven't even seen yet! 30 31 ------- =_aaaaaaaaaa4-- 32 33 This will, I'm sure, cause much breakage of MIME parsers. But, as 34 far as I can tell, it's perfectly legal. I have not yet ever seen 35 a case of this in the wild, but I've seen *similar* things. 36 37 38 ------- =_aaaaaaaaaa2 39 Content-Type: application/octet-stream 40 Content-ID: <20592.1022586929.4 (a] example.com> 41 Content-Description: patch2 42 Content-Transfer-Encoding: base64 43 44 XXX 45 46 ------- =_aaaaaaaaaa2-- 47 48 ------- =_aaaaaaaaaa1 49 Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa3" 50 Content-ID: <20592.1022586929.6 (a] example.com> 51 52 ------- =_aaaaaaaaaa3 53 Content-Type: application/octet-stream 54 Content-ID: <20592.1022586929.7 (a] example.com> 55 Content-Description: patch3 56 Content-Transfer-Encoding: base64 57 58 XXX 59 60 ------- =_aaaaaaaaaa3 61 Content-Type: application/octet-stream 62 Content-ID: <20592.1022586929.8 (a] example.com> 63 Content-Description: patch4 64 Content-Transfer-Encoding: base64 65 66 XXX 67 68 ------- =_aaaaaaaaaa3-- 69 70 ------- =_aaaaaaaaaa1 71 Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa4" 72 Content-ID: <20592.1022586929.10 (a] example.com> 73 74 ------- =_aaaaaaaaaa4 75 Content-Type: application/octet-stream 76 Content-ID: <20592.1022586929.11 (a] example.com> 77 Content-Description: patch5 78 Content-Transfer-Encoding: base64 79 80 XXX 81 82 ------- =_aaaaaaaaaa4 83 Content-Type: application/octet-stream 84 Content-ID: <20592.1022586929.12 (a] example.com> 85 Content-Description: patch6 86 Content-Transfer-Encoding: base64 87 88 XXX 89 90 ------- =_aaaaaaaaaa4-- 91 92 ------- =_aaaaaaaaaa1-- 93 94 ------- =_aaaaaaaaaa0 95 Content-Type: text/plain; charset="us-ascii" 96 Content-ID: <20592.1022586929.15 (a] example.com> 97 98 -- 99 It's never too late to have a happy childhood. 100 101 ------- =_aaaaaaaaaa0-- 102