17db96d56Sopenharmony_ciMIME-Version: 1.0 27db96d56Sopenharmony_ciContent-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0" 37db96d56Sopenharmony_ci 47db96d56Sopenharmony_ci------- =_aaaaaaaaaa0 57db96d56Sopenharmony_ciContent-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa1" 67db96d56Sopenharmony_ciContent-ID: <20592.1022586929.1@example.com> 77db96d56Sopenharmony_ci 87db96d56Sopenharmony_ci------- =_aaaaaaaaaa1 97db96d56Sopenharmony_ciContent-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa2" 107db96d56Sopenharmony_ciContent-ID: <20592.1022586929.2@example.com> 117db96d56Sopenharmony_ci 127db96d56Sopenharmony_ci------- =_aaaaaaaaaa2 137db96d56Sopenharmony_ciContent-Type: text/plain 147db96d56Sopenharmony_ciContent-ID: <20592.1022586929.3@example.com> 157db96d56Sopenharmony_ciContent-Description: very tricky 167db96d56Sopenharmony_ciContent-Transfer-Encoding: 7bit 177db96d56Sopenharmony_ci 187db96d56Sopenharmony_ci 197db96d56Sopenharmony_ciUnlike the test test_nested-multiples-with-internal-boundary, this 207db96d56Sopenharmony_cipiece of text not only contains the outer boundary tags 217db96d56Sopenharmony_ci------- =_aaaaaaaaaa1 227db96d56Sopenharmony_ciand 237db96d56Sopenharmony_ci------- =_aaaaaaaaaa0 247db96d56Sopenharmony_cibut puts them at the start of a line! And, to be even nastier, it 257db96d56Sopenharmony_cieven includes a couple of end tags, such as this one: 267db96d56Sopenharmony_ci 277db96d56Sopenharmony_ci------- =_aaaaaaaaaa1-- 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_ciand this one, which is from a multipart we haven't even seen yet! 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_ci------- =_aaaaaaaaaa4-- 327db96d56Sopenharmony_ci 337db96d56Sopenharmony_ciThis will, I'm sure, cause much breakage of MIME parsers. But, as 347db96d56Sopenharmony_cifar as I can tell, it's perfectly legal. I have not yet ever seen 357db96d56Sopenharmony_cia case of this in the wild, but I've seen *similar* things. 367db96d56Sopenharmony_ci 377db96d56Sopenharmony_ci 387db96d56Sopenharmony_ci------- =_aaaaaaaaaa2 397db96d56Sopenharmony_ciContent-Type: application/octet-stream 407db96d56Sopenharmony_ciContent-ID: <20592.1022586929.4@example.com> 417db96d56Sopenharmony_ciContent-Description: patch2 427db96d56Sopenharmony_ciContent-Transfer-Encoding: base64 437db96d56Sopenharmony_ci 447db96d56Sopenharmony_ciXXX 457db96d56Sopenharmony_ci 467db96d56Sopenharmony_ci------- =_aaaaaaaaaa2-- 477db96d56Sopenharmony_ci 487db96d56Sopenharmony_ci------- =_aaaaaaaaaa1 497db96d56Sopenharmony_ciContent-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa3" 507db96d56Sopenharmony_ciContent-ID: <20592.1022586929.6@example.com> 517db96d56Sopenharmony_ci 527db96d56Sopenharmony_ci------- =_aaaaaaaaaa3 537db96d56Sopenharmony_ciContent-Type: application/octet-stream 547db96d56Sopenharmony_ciContent-ID: <20592.1022586929.7@example.com> 557db96d56Sopenharmony_ciContent-Description: patch3 567db96d56Sopenharmony_ciContent-Transfer-Encoding: base64 577db96d56Sopenharmony_ci 587db96d56Sopenharmony_ciXXX 597db96d56Sopenharmony_ci 607db96d56Sopenharmony_ci------- =_aaaaaaaaaa3 617db96d56Sopenharmony_ciContent-Type: application/octet-stream 627db96d56Sopenharmony_ciContent-ID: <20592.1022586929.8@example.com> 637db96d56Sopenharmony_ciContent-Description: patch4 647db96d56Sopenharmony_ciContent-Transfer-Encoding: base64 657db96d56Sopenharmony_ci 667db96d56Sopenharmony_ciXXX 677db96d56Sopenharmony_ci 687db96d56Sopenharmony_ci------- =_aaaaaaaaaa3-- 697db96d56Sopenharmony_ci 707db96d56Sopenharmony_ci------- =_aaaaaaaaaa1 717db96d56Sopenharmony_ciContent-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa4" 727db96d56Sopenharmony_ciContent-ID: <20592.1022586929.10@example.com> 737db96d56Sopenharmony_ci 747db96d56Sopenharmony_ci------- =_aaaaaaaaaa4 757db96d56Sopenharmony_ciContent-Type: application/octet-stream 767db96d56Sopenharmony_ciContent-ID: <20592.1022586929.11@example.com> 777db96d56Sopenharmony_ciContent-Description: patch5 787db96d56Sopenharmony_ciContent-Transfer-Encoding: base64 797db96d56Sopenharmony_ci 807db96d56Sopenharmony_ciXXX 817db96d56Sopenharmony_ci 827db96d56Sopenharmony_ci------- =_aaaaaaaaaa4 837db96d56Sopenharmony_ciContent-Type: application/octet-stream 847db96d56Sopenharmony_ciContent-ID: <20592.1022586929.12@example.com> 857db96d56Sopenharmony_ciContent-Description: patch6 867db96d56Sopenharmony_ciContent-Transfer-Encoding: base64 877db96d56Sopenharmony_ci 887db96d56Sopenharmony_ciXXX 897db96d56Sopenharmony_ci 907db96d56Sopenharmony_ci------- =_aaaaaaaaaa4-- 917db96d56Sopenharmony_ci 927db96d56Sopenharmony_ci------- =_aaaaaaaaaa1-- 937db96d56Sopenharmony_ci 947db96d56Sopenharmony_ci------- =_aaaaaaaaaa0 957db96d56Sopenharmony_ciContent-Type: text/plain; charset="us-ascii" 967db96d56Sopenharmony_ciContent-ID: <20592.1022586929.15@example.com> 977db96d56Sopenharmony_ci 987db96d56Sopenharmony_ci-- 997db96d56Sopenharmony_ciIt's never too late to have a happy childhood. 1007db96d56Sopenharmony_ci 1017db96d56Sopenharmony_ci------- =_aaaaaaaaaa0-- 102