Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Aug 1999 08:06:29 +1000
From:      Peter Jeremy <jeremyp@gsmx07.alcatel.com.au>
To:        hackers@FreeBSD.ORG
Subject:   Re: Mentioning RFC numbers in /etc/services
Message-ID:  <99Aug4.074710est.40322@border.alcanet.com.au>

next in thread | raw e-mail | index | archive | help
Assar Westerlund <assar@sics.se> wrote:

As an enhancement, the strtol() check should verify that the passed
service number is completely numeric:

>--- inetd.c.orig      Mon Aug  2 22:35:28 1999
>+++ inetd.c     Mon Aug  2 22:41:52 1999
>@@ -830,34 +830,50 @@
>                        continue;
>                }
>                if (!sep->se_rpc) {
>+                       int port;
+                        char *ep;
>+
>                        sp = getservbyname(sep->se_service, sep->se_proto);
>                        if (sp == 0) {
>-                             syslog(LOG_ERR, "%s/%s: unknown service",
>+                               port = htons(strtol (sep->se_service,
+                                                     &ep, 0));
+                                if (port <= 0 || *ep) {
...

and similarly for the RPC service number.

Brian Somers <brian@Awfulhak.org> wrote:
>I know I'd be pretty annoyed if I tried to do something like ``ssh -p 
>1234 somewhere'' after configuring my interface in single-user modem 
>with nis in /etc/host.conf and found that ssh was looking up 1234 in 
>/etc/services.  Even if this is right, it's not intuitive.

Adding definitions like ': 1 2 ;' to forth is always good for confusing
people.  Similarly, adding lines like '1234 4321/tcp' to /etc/services
will lead to counter-intuitive behaviour.

That said, I think that the get...byname() should preceed the strtol()
for general consistency.

Brian Somers <brian@Awfulhak.org> wrote:
>I've been stung with things like pipe() for exactly the same reasons. 
>IMHO, pipe() should *not* behave like socketpair() as it encourages 
>FreeBSD developers to write bad code :-(

SVR4 provides bi-directional pipe(2) FD's.  Digital UNIX (aka OSF/1
aka Tru64) seems to support both behaviours.  I suspect the trend will
be for pipe()'s to be bi-directional.  Feel free to add a sysctl to
make pipe's unidirectional.

Peter


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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?99Aug4.074710est.40322>