Hi Again It looks like we have been able to quite exactly figure out what goes wrong.
From Kernel 2.6.17 on, the tcp_window_scaling code was changed. found on: http://inodes.org/blog/2006/09/06/tcp-window-scaling-and-kernel-2617/ Linux starts with very small packets. Our POP +OK string is exaclty 47 bytes long and split into two reads: 46 bytes + 1 byte check_tcp apparently fails if a read is split into multiple reads and terminates thos two reads with \0 and overwrites the first 46 bytes by terminating them with \0 after the lenght of the second read, thus leaving something like "+O" or even shorter remaining in the buffer. If the string is shorter everything is OK as it fits into one read. If the string is longer, the overwriting happens after the +OK and again the check is OK. Quick Fix: Disable TCP Window Scaling: echo 0 > /proc/sys/net/ipv4/tcp_window_scaling Mit freundlichen GrĂ¼ssen Benoit Panizzon -- I m p r o W a r e A G - System Services ______________________________________________________ Zurlindenstrasse 29 Tel +41 61 826 93 00 CH-4133 Pratteln Fax +41 61 826 93 01 Schweiz Web http://www.imp.ch ______________________________________________________
pgpgnAlFvjA79.pgp
Description: PGP signature