[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: closed SMTP channel - response overrun on smtpwrite()



> OK, I nailed this down.  Remote end is not 8 bit clean, (and honestly
> confess it).  Message in the queue was produced with another Micro$oft
> tool and contained this:
> 
> Content-Type: application/octet-stream; name="C_18_06.XLS"
> Content-Transfer-Encoding: 8bit

	Shudder....  This should *never* happen; even by M$ ...

	You don't, by change, use 'translation' facility at
	the smtpserver ?

	By looking at it, it would decode any incoming single
	content C-T-E: Q-P message to 8-bit independent of
	TEXT/PLAIN Content-Type specifier.   That is, unless
	"PARANOID_TRANSLATION" setting is also used.

> The body itself was actuall binary file.  When 8bit data was sent to
> the remote, at some moment it dropped data mode and tried to parse the
> rest of the message as SMTP commands, producing a heap of
> "500 Unknown command"'s.  This heap overran Zmailer's input buffer
> when it at last tried to read responce to ".".
> 
> Zmailer's automatic conversion to QP did not work because of the
> content-type.  I think that the piece of code below needs to be taken
> off, we want to convert to 7 bit even (and especially!) non-texts:
> 
> --- transports/libta/mimeheaders.c.orig Mon Feb  8 14:10:27 1999
> +++ transports/libta/mimeheaders.c      Wed Jun 23 14:15:25 1999
> @@ -836,7 +836,7 @@
>         }
>  
>         ct = parse_content_type(CT);
> -
> +#if 0
>         if (ct->basetype == NULL ||
>             ct->subtype  == NULL ||
>             cistrcmp(ct->basetype,"text") != 0 ||
> @@ -845,7 +845,7 @@
>         if (ct->charset &&
>             cistrncmp(ct->charset,"ISO-8859",8) != 0 &&
>             cistrncmp(ct->charset,"KOI8",4)     != 0) return 0; /* Not ISO-* */
> -
> +#endif
>         if (convertmode == _CONVERT_QP) {
>  
>           strcpy(*CTE, "Content-Transfer-Encoding: QUOTED-PRINTABLE");
> 
> What do you think, Matti?

	Not good.

	There are several subleties.
	Now having spent the evening with office colleques
	out of office with a barbeque (and some beer), my
	thinking isn't yet quite clear with how it should
	be reworked to handle this.

	See the CVS.

> Eugene

/Matti Aarnio