inn-2.2 / storageapi + wireformat == corruption

greg andruk meowing at banet.net
Sun Sep 26 06:27:21 UTC 1999


In nnmh:inn-workers, Russ Allbery <rra at stanford.edu> wrote:

> Russ Allbery <rra at Stanford.EDU> writes:
>> Yup.  I finally had a chance to go and look at this, and QIOread() has:
> [...]
>> which will mangle any article that's in wire format and contains an
>> embedded bare newline.  Not good.  It needs to be rewritten into a loop
>> that searches specifically for \r\n when WireFormat is set.

> Okay, I just checked a patch to qio.c into CURRENT that should fix this.
> Everything looks correct in testing, but QIO is used by half of INN in all
> sorts of odd places, so everyone please let me know if something breaks.

While this patch gets the checksums to agree, it contradicts both 1036

4.3 Batching

[...]

  (The newline at the end of each line of the message is counted as
  one byte, for purposes of this count, even if it is stored as
  <CARRIAGE RETURN><LINE FEED>.)

and USEFOR.

 4.4.  Characters and Character Sets                                                                                
    Transmission paths for news articles MUST treat news articles as
    uninterpreted sequences of octets, excluding the values 0 (ASCII
    NUL) and 13 and 10 (ASCII CR and LF, which MUST only appear in the
    combination CRLF which denotes a line separator).


More information about the inn-workers mailing list