Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 07 Jul 2003 13:22:34 +0200
From:      Jose Marcio Martins da Cruz <Jose-Marcio.Martins@ensmp.fr>
To:        freebsd-bugs@FreeBSD.ORG
Cc:        Claus Assmann <ca@sendmail.org>
Subject:   Bug at inetd.c source file.
Message-ID:  <3F0957FA.F085B828@ensmp.fr>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------28E27EBD6E648498D81F8866
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit


Hello,

There seems to have a bug at inetd.c source file.

This pb regards connection rate control feature.

Line 2341 shall probably be :

  if ((cnt * 60) / (CHTSIZE * CHTGRAN) > sep->se_maxcpm) {
  ...

instead of 

  if (cnt * (CHTSIZE * CHTGRAN) / 60 > sep->se_maxcpm) {
    char pname[INET6_ADDRSTRLEN];

    getnameinfo((struct sockaddr *)&rss,
                ((struct sockaddr *)&rss)->sa_len,
		pname, sizeof(pname), NULL, 0,
		NI_NUMERICHOST|NI_WITHSCOPEID);
    r = -1;
    syslog(LOG_ERR,
	    "%s from %s exceeded counts/min (limit %d/min)",
	    sep->se_service, pname,
	    sep->se_maxcpm);
  }


as the connection rate is the number of connections ***DIVIDED*** by the
size of the measurement window.

As long as you don't change original CHTSIZE and CHTGRAN values (6 and
10), this bug has no effect.

This problem was remarked by Claus Assmann (ca@sendmail.org) and Jose
Marcio Martins da Cruz (Jose-Marcio.Martins@ensmp.fr).

You'll find attached to this message a patch to change source file.

Version information of the source file is : 

__FBSDID("$FreeBSD: src/usr.sbin/inetd/inetd.c,v 1.119 2003/02/23
16:54:19 dwmalone Exp $");

Best regards,

Jose-Marcio


-- 
 ---------------------------------------------------------------
 Jose Marcio MARTINS DA CRUZ           Tel. :(33) 01.40.51.93.41
 Ecole des Mines de Paris              http://j-chkmail.ensmp.fr
 60, bd Saint Michel                http://www.ensmp.fr/~martins
 75272 - PARIS CEDEX 06      mailto:Jose-Marcio.Martins@ensmp.fr
--------------28E27EBD6E648498D81F8866
Content-Type: text/plain; charset=us-ascii;
 name="inetd.c.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="inetd.c.patch"

--- inetd.c.org	2003-07-07 12:37:55.987790000 +0200
+++ inetd.c	2003-07-07 12:39:19.990674000 +0200
@@ -2338,7 +2338,7 @@
 				cnt += ct->ct_Count;
 			}
 		}
-		if (cnt * (CHTSIZE * CHTGRAN) / 60 > sep->se_maxcpm) {
+		if ((cnt * 60) / (CHTSIZE * CHTGRAN) > sep->se_maxcpm) {
 			char pname[INET6_ADDRSTRLEN];
 
 			getnameinfo((struct sockaddr *)&rss,

--------------28E27EBD6E648498D81F8866--



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