Re: TCP SYNs broken in 2.3.41

From: Andrea Arcangeli (andrea@suse.de)
Date: Mon Jan 31 2000 - 07:07:56 EST


On Sun, 30 Jan 2000, David S. Miller wrote:

>alignment of packets. This means that all of your checksum support
>needs to handle completely arbitrary alignment cases.

Oh yeah! The 2.3.41 (and previous) IA32 P6 checksum will buffer overflow
of three bytes if 'addr&1 == 1' (see the movzbl). Everybody out there
complained me when I spotted and fixed that buffer overflow in the
assembler and they had their point that all the network code enforce 4byte
alignment on packet addresses and thus they was perfectly right in using
such hack to get better performance. Since by your statement they are very
wrong (as I always thought :), my longstanding fix is still here:

        ftp://ftp.*.kernel.org/pub/linux/kernel/people/andrea/patches/v2.3/2.3.17/chksum-2.gz

Andrea

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jan 31 2000 - 21:00:28 EST