From: Junio C Hamano Date: Thu, 22 May 2008 17:44:31 GMT Subject: Re: [PATCH] mailsplit and mailinfo: gracefully handle NUL characters Message-ID: <7v8wy2w7wg.fsf@gitster.siamese.dyndns.org> In-Reply-To: Johannes Schindelin writes: >> Looking at what handle_body() does for TE_BASE64 and TE_QP cases, I have >> to wonder if this is enough. The loop seems to stop at (*op == NUL) >> which follows an old assumption that each line is terminated with NUL, >> not the new assumption you introduced that each line's length is kept in >> local variable len. > > Of course! But does BASE64 and QP contain NULs? The loop in question iterates over bytes _after_ decoding these encoded lines, and a typical reason you would encode the payload is because it contains something not safe over e-mail transfer, e.g. NUL. I think decode_transfer_encoding() also needs to become safe against NULs in the payload.