Umm, actually being a substring is not enough. The outer's boundary must be a prefix of the inner's to trigger the error. /rjb
/ rjb
Previous text:
2003-04-14 12:45: Subject: MIME multipart message improperly terminated bug [3414]
Well, I took a close look at one of my rejects, and it seems that the problem was related to having a multipart message nested in another, _and_ the boundary string of the outer one being a substring of that for the inner. To be specific:
crap;
(1) Result: "Content-type: multipart/mixed;boundary="XXX"\n\ncrap\n\n--XXX\nContent-type: multipart/mixed;boundary="XXXAA"\n\ndung\n\n--XXXAA\n\nabc\n\n--XXXAA--\n--XXX--\n"
MIME.Message(crap);
multipart message improperly terminated ("\ndung\n") /usr/local/pike/7.4.13/lib/modules/MIME.pmod/module.pmod:1078: MIME.Message()->create("Content-type: multipart/mixed;boundary="XXXAA"\n\ndung\n",0,0,0) object_program(MIME): MIME->Message() /usr/local/pike/7.4.13/lib/modules/MIME.pmod/module.pmod:1092: MIME.Message()->__lambda_65679_4_line_1083("Content-type: multipart/mixed;boundary="XXXAA"\n\ndung\n") /usr/local/pike/7.4.13/lib/modules/MIME.pmod/module.pmod:1082: MIME.Message()->create("Content-type: multipart/mixed;boundary="XXX"\n\ncrap\n\n--XXX\nContent-type: multipart/m
ixed;boundary="XXXAA"\n\ndung\n\n--XXXAA\n\nabc\n\n--XXXAA--\n--XXX--\n",0,0,0) object_program(MIME): MIME->Message() HilfeInput:1: HilfeInput()->___HilfeWrapper()
crap=replace(crap, "XXXAA", "YYY");
(2) Result: "Content-type: multipart/mixed;boundary="XXX"\n\ncrap\n\n--XXX\nContent-type: multipart/mixed;boundary="YYY"\n\ndung\n\n--YYY\n\nabc\n\n--YYY--\n--XXX--\n"
MIME.Message(crap);
(3) Result: MIME.Message()
(I have no idea whether this violates MIME...)
/ rjb