anomy-list

Re: bug? in quoted-printable handling?

From: Dave Cridland (31334@xyz.molar.is)
Date: Wed 16 Jan 2002 - 10:58:03 UTC

  • Next message: Dave Cridland: "Re: bug? in quoted-printable handling?"

    On Wed, 2002-01-16 at 08:09, Paulius Bulotas wrote:
    > I try to send dbf file, which size is 39422 bytes and after receiving
    > it, the size is 39425 (I suspect three extra 0xD in front of 0xA, for
    > one I'm really sure).

    I've attached a test case, to detirmine what happens to files sent
    through Sanitizer with odd line-break characters (=0A and =0D).

    I sent this by creating an ordinary text file containing the text below
    marked as Test Case, and sending it using:

    sendmail -v -oi myuser <filename

    I've sent this through both Sanifilter to Cyrus and not through
    Sanifilter to Cyrus, passed it only through sanitizer.pl, and passed it
    through sendmail directly to the local mailer (/var/spool/mail). My
    sanitizer configuration would pass this through with "accept".

    What appears to be happening is that =0A (\n in C) gets translated into
    a real line break - either by the Sanitizer or by Cyrus - in as much as
    I can tell, it's done by both.

    Whatever is doing it also translates trailing = (meaning, the following
    line break doesn't count) into no line break at all, reformatting the
    part into 80 chars wide.

    The problem is that if you read the attachment on, say, a Windows
    machine, or a Mac, the line break characters are different, and you'll
    potentially be changing the size and content of the file.

    Of course, it's fine if it's a text type.

    With Base64, the line breaks are always ignored, so the problem isn't
    there.

    Test case:

    XXX START
    From: Dave Cridland <31334@xyz.molar.is>
    To: You <31461@xyz.molar.is>
    Subject: A test email.
    Content-Type: multipart/mixed; boundary="thisistheboundary"
    MIME-Version: 1.0
    Message-Id: <31501@xyz.molar.is>

    This is a MIME message.

    --thisistheboundary
    Content-Transfer-Encoding: 7bit
    Content-Type: text/plain; charset=iso-8859-1

    This is a test message to test:

    1) Whether the Sanitizer mangles line endings in email inside
    quoted-printable encoded parts.

    Dave's Test name is:

    QPMangle

    Dave's Test ID is:

    1

    --thisistheboundary
    Content-Transfer-Encoding: quoted-printable
    Content-Type: application/octet-stream

    This is an unknown sort of=20=0A=0Dfile which is very odd indeed.=0D=
    It has strange=0Dline endings, and commonly has =0A=
    =0Dline breaks in odd places.=
    This bit=0Ais also odd.=

    --thisistheboundary--
    XXX End

    Sample output of the quoted-printable bit after going through Cyrus:

    XXX Start
    --thisistheboundary
    Content-Transfer-Encoding: quoted-printable
    Content-Type: application/octet-stream

    This is an unknown sort of=20
    =0Dfile which is very odd indeed.=0DIt has strange=0Dline endings, and
    comm=
    only has=20
    =0Dline breaks in odd places.This bit
    is also odd.
    --thisistheboundary--
    XXX End



    hosted by molar.is