Hi Wietse,
I have a good news for you. While fixing the bug and auditing all of
its extent, I noticed that the PROXY protocol doesn't use the CRC32
but CRC32c (the Castagnoli variant), which is *not* affected by the
signedness bug :
crc = (crc >> 8) ^ crctable[(crc ^ (*buf++)) & 0xff];
I sus
On Sun, Jan 12, 2020 at 08:40:31AM -0500, Wietse Venema wrote:
> Willy Tarreau:
> > All this shows that neither CRC32 nor CRC32c are that much used today,
> > or that the usage is limited to situations not sensitive to interop
> > issues. So I want to see it fixed, and we'll put a prominent warning
Willy Tarreau:
> All this shows that neither CRC32 nor CRC32c are that much used today,
> or that the usage is limited to situations not sensitive to interop
> issues. So I want to see it fixed, and we'll put a prominent warning
> in next releases. Do you want to propose a patch or should I do it ?
Hi Wietse,
[CCing haproxy ML and responding inline]
First, thanks a lot for your detailed analysis.
On Sat, Jan 11, 2020 at 09:03:19PM -0500, Wietse Venema wrote:
> I found a portability bug in haproxy's CRC32 implementation, while
> adding adding CRC32 support to Postfix's haproxy2 code. The ha
I found a portability bug in haproxy's CRC32 implementation, while
adding adding CRC32 support to Postfix's haproxy2 code. The haproxy
code produces incorrect results on ix86. Which just happens to work
as long as everyone is using ix86.
The same bug appears to exist in other hash functions in
hap