102 lines
2.5 KiB
Plaintext
102 lines
2.5 KiB
Plaintext
MIME-Version: 1.0
|
|
Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
|
|
|
|
------- =_aaaaaaaaaa0
|
|
Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa1"
|
|
Content-ID: <20592.1022586929.1@example.com>
|
|
|
|
------- =_aaaaaaaaaa1
|
|
Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa2"
|
|
Content-ID: <20592.1022586929.2@example.com>
|
|
|
|
------- =_aaaaaaaaaa2
|
|
Content-Type: text/plain
|
|
Content-ID: <20592.1022586929.3@example.com>
|
|
Content-Description: very tricky
|
|
Content-Transfer-Encoding: 7bit
|
|
|
|
|
|
Unlike the test test_nested-multiples-with-internal-boundary, this
|
|
piece of text not only contains the outer boundary tags
|
|
------- =_aaaaaaaaaa1
|
|
and
|
|
------- =_aaaaaaaaaa0
|
|
but puts them at the start of a line! And, to be even nastier, it
|
|
even includes a couple of end tags, such as this one:
|
|
|
|
------- =_aaaaaaaaaa1--
|
|
|
|
and this one, which is from a multipart we haven't even seen yet!
|
|
|
|
------- =_aaaaaaaaaa4--
|
|
|
|
This will, I'm sure, cause much breakage of MIME parsers. But, as
|
|
far as I can tell, it's perfectly legal. I have not yet ever seen
|
|
a case of this in the wild, but I've seen *similar* things.
|
|
|
|
|
|
------- =_aaaaaaaaaa2
|
|
Content-Type: application/octet-stream
|
|
Content-ID: <20592.1022586929.4@example.com>
|
|
Content-Description: patch2
|
|
Content-Transfer-Encoding: base64
|
|
|
|
XXX
|
|
|
|
------- =_aaaaaaaaaa2--
|
|
|
|
------- =_aaaaaaaaaa1
|
|
Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa3"
|
|
Content-ID: <20592.1022586929.6@example.com>
|
|
|
|
------- =_aaaaaaaaaa3
|
|
Content-Type: application/octet-stream
|
|
Content-ID: <20592.1022586929.7@example.com>
|
|
Content-Description: patch3
|
|
Content-Transfer-Encoding: base64
|
|
|
|
XXX
|
|
|
|
------- =_aaaaaaaaaa3
|
|
Content-Type: application/octet-stream
|
|
Content-ID: <20592.1022586929.8@example.com>
|
|
Content-Description: patch4
|
|
Content-Transfer-Encoding: base64
|
|
|
|
XXX
|
|
|
|
------- =_aaaaaaaaaa3--
|
|
|
|
------- =_aaaaaaaaaa1
|
|
Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa4"
|
|
Content-ID: <20592.1022586929.10@example.com>
|
|
|
|
------- =_aaaaaaaaaa4
|
|
Content-Type: application/octet-stream
|
|
Content-ID: <20592.1022586929.11@example.com>
|
|
Content-Description: patch5
|
|
Content-Transfer-Encoding: base64
|
|
|
|
XXX
|
|
|
|
------- =_aaaaaaaaaa4
|
|
Content-Type: application/octet-stream
|
|
Content-ID: <20592.1022586929.12@example.com>
|
|
Content-Description: patch6
|
|
Content-Transfer-Encoding: base64
|
|
|
|
XXX
|
|
|
|
------- =_aaaaaaaaaa4--
|
|
|
|
------- =_aaaaaaaaaa1--
|
|
|
|
------- =_aaaaaaaaaa0
|
|
Content-Type: text/plain; charset="us-ascii"
|
|
Content-ID: <20592.1022586929.15@example.com>
|
|
|
|
--
|
|
It's never too late to have a happy childhood.
|
|
|
|
------- =_aaaaaaaaaa0--
|