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