[Pkg-nagios-devel] Bug#396337: Acknowledgement (check_tcp: check_tcp (check_pop) fails on some specific +OK messages)

Benoit Panizzon benoit.panizzon at imp.ch
Tue Oct 31 11:54:23 CET 2006


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
______________________________________________________
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 185 bytes
Desc: not available
Url : http://lists.alioth.debian.org/pipermail/pkg-nagios-devel/attachments/20061031/8ef73f54/attachment.pgp


More information about the Pkg-nagios-devel mailing list