Guido van Rossum | 8b3febe | 2007-08-30 01:15:14 +0000 | [diff] [blame] | 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@example.com> |
| 7 | |
| 8 | ------- =_aaaaaaaaaa1 |
| 9 | Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa2" |
| 10 | Content-ID: <20592.1022586929.2@example.com> |
| 11 | |
| 12 | ------- =_aaaaaaaaaa2 |
| 13 | Content-Type: text/plain |
| 14 | Content-ID: <20592.1022586929.3@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@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@example.com> |
| 51 | |
| 52 | ------- =_aaaaaaaaaa3 |
| 53 | Content-Type: application/octet-stream |
| 54 | Content-ID: <20592.1022586929.7@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@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@example.com> |
| 73 | |
| 74 | ------- =_aaaaaaaaaa4 |
| 75 | Content-Type: application/octet-stream |
| 76 | Content-ID: <20592.1022586929.11@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@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@example.com> |
| 97 | |
| 98 | -- |
| 99 | It's never too late to have a happy childhood. |
| 100 | |
| 101 | ------- =_aaaaaaaaaa0-- |