cant store article: bogus Xref: header in INN 2.5 ?

Julien ÉLIE julien at trigofacile.com
Sun Sep 4 22:56:42 UTC 2011


Hi all,

> I have a new patch.  I will post it tomorrow, after having checked
> that everything is all right.

I believe we need a complete fix for all the uses of the Xref: header 
field.  I came up with a partial patch, only fixing the issue you 
mentioned.  However, other places should be fixed in the code.

It means that it will probably delay the release of INN 2.5.3.  Though I 
am not very enthusiastic about modifying how the Xref: header is parsed 
in critical programs just before the release of a new version, I think 
it should be done because bad things can occur with the current state of 
the parsing.
As Matija discovered, a 2.5 slave fed by a 2.4 upstream leads to issues. 
  We have to change the Xref: parsing in both tradspool storage and 
overview data.

Other affected programs parsing Xref: header fields, are:
archive, expire, makehistory, overchan, and also nnrpd (because of 
virtual hosting and NEWNEWS checks).

They use overview data, and for most of them also rely on the fact that 
no leading whitespaces exist in overview fields.
Slaves are broken.  (Not an upstream INN 2.5 because the behaviour is 
consistent:  no leading whitespaces are present in generated Xref: 
header fields.  And previously existing articles were integrated without 
any leading whitespaces in overview.)




Another point:

    xref            =  "Xref:" SP *WSP server-name
                       1*( FWS location ) *WSP CRLF

I plan on allowing FWS instead of *WSP before server-name.  As it 
happens when parsing an already injected/accepted article, I believe it 
does no harm (contrary to nnrpd, acting as an injecting agent; and 
anyway, it will not accept articles already containing an Xref: header 
field).
The reason for allowing FWS is purely for easing the maintenance of the 
code.  I found out that CrackXref is called with a pointer sometimes 
before server-name, sometimes after server-name.  (It may also be the 
case for other functions.)

-- 
Julien ÉLIE

« Pour Rome, la direction importe peu, car tous les chemins y
   mènent. » (Astérix)



More information about the inn-workers mailing list