Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Jun 1995 14:10:14 -0600
From:      Craig.P.Loomis@williams.edu
To:        bugs@FreeBSD.org
Subject:   segmentation fault in inetd
Message-ID:  <v01510101abf7bb453e53@[129.121.128.99]>

next in thread | raw e-mail | index | archive | help

  This is for FreeBSD-current, as of June 1.

  The tcpmux-related code in inetd.c:main() has a bug: a for loop variable
(sep) is set to NULL by code within the loop. When the loop is continued
and sep->se_next is referenced, the program crashes. One possible fix
follows.
  Also, a line like:

tcpmux  stream  tcp     nowait  root    internal

  should perhaps be put in /etc/inetd.conf so that tcpmux services can be
started. The man page mentions tcpmux/servicename lines, but doesn't make
it clear that the tcpmux service itself must be listed.
  Lastly, the Send-pr line in /usr/share/info/dir should have a period
where the second colon is:

* Send-pr: (send-pr).
                    ^

  Thank you for a *fine* system.

 - craig loomis
   Unaffiliated and loving it.


*** inetd.c-dist        Sun Jun  4 13:08:29 1995
--- inetd.c     Sun Jun  4 13:07:58 1995
***************
*** 372,381 ****
                             */
                            if (sep->se_bi &&
                                sep->se_bi->bi_fn == (void (*)()) tcpmux) {
!                                   sep = tcpmux(ctrl);
!                                   if (sep == NULL) {
                                            close(ctrl);
                                            continue;
                                    }
                            }
                    } else
--- 372,386 ----
                             */
                            if (sep->se_bi &&
                                sep->se_bi->bi_fn == (void (*)()) tcpmux) {
!                                   struct servtab *tsep;
!
!                                   tsep = tcpmux(ctrl);
!                                   if (tsep == NULL) {
                                            close(ctrl);
                                            continue;
+                                   }
+                                   else {
+                                           sep = tsep;
                                    }
                            }
                    } else






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