Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Sep 2000 08:31:47 -0700
From:      Alfred Perlstein <bright@wintelcom.net>
To:        Maxime Henrion <mux@qualys.com>
Cc:        stable@FreeBSD.ORG
Subject:   Re: internal identd problem
Message-ID:  <20000920083147.U9141@fw.wintelcom.net>
In-Reply-To: <39C8CD9B.17F70429@qualys.com>; from mux@qualys.com on Wed, Sep 20, 2000 at 04:45:47PM %2B0200
References:  <39C8CD9B.17F70429@qualys.com>

next in thread | previous in thread | raw e-mail | index | archive | help
* Maxime Henrion <mux@qualys.com> [000920 08:17] wrote:
>         Hi,
> 
> 
> I read the thread about the cpu hog problem of the internal identd
> problem and tried to reproduce it on my box. I did a truss on the inetd
> process and got this :
> 
> select(0x8,0xbfbff46c,0x0,0x0,0xbfbfd45c)  = 1 (0x1)
> ioctl(7,FIONREAD,0xbfbfd444)    = 0 (0x0)
> read(0x7,0xbfbfd46c,0x0)    = 0 (0x0)
> gettimeofday(0xbfbfd45c,0x0)    = 0 (0x0)
> [...]
> 
> a lot of times.
> 
> It seems it's a very common problem. The return value of read() is not
> checked against 0 (0 means that the other side disconnected) and so, it
> loops until the connection times out.
> 
> I will look at inetd sources to fix this bug as soon as possible and I
> think I will come shortly with a patch.

Give this a shot:

Index: builtins.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/inetd/builtins.c,v
retrieving revision 1.24
diff -u -u -r1.24 builtins.c
--- builtins.c	2000/07/12 20:49:06	1.24
+++ builtins.c	2000/09/20 14:55:01
@@ -478,7 +478,7 @@
 		if (onreadlen > bufsiz)
 			onreadlen = bufsiz;
 		ssize = read(s, &buf[size], (size_t)onreadlen);
-		if (ssize == -1)
+		if (ssize < 1)
 			iderror(0, 0, s, errno);
 		bufsiz -= ssize;
 		size += ssize;

-- 
-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
"I have the heart of a child; I keep it in a jar on my desk."


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000920083147.U9141>