Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Jan 2010 09:29:07 +0000 (UTC)
From:      Hiroki Sato <hrs@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r202686 - head/usr.sbin/ypserv
Message-ID:  <201001200929.o0K9T7m0072167@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: hrs
Date: Wed Jan 20 09:29:07 2010
New Revision: 202686
URL: http://svn.freebsd.org/changeset/base/202686

Log:
  Try a privileged port for binding whenever possible because the
  ypbind daemon requires the ypserv daemon is running on a
  privileged port.
  
  Reported by:	Andrzej Tobola

Modified:
  head/usr.sbin/ypserv/yp_main.c

Modified: head/usr.sbin/ypserv/yp_main.c
==============================================================================
--- head/usr.sbin/ypserv/yp_main.c	Wed Jan 20 09:26:28 2010	(r202685)
+++ head/usr.sbin/ypserv/yp_main.c	Wed Jan 20 09:29:07 2010	(r202686)
@@ -303,13 +303,18 @@ create_service(const int sock, const str
 					freeaddrinfo(res0);
 					return -1;
 				}
-				if (bind(s, res->ai_addr,
-				    res->ai_addrlen) == -1) {
-					_msgout("cannot bind %s socket: %s",
-					    nconf->nc_netid, strerror(errno));
-					freeaddrinfo(res0);
-					close(sock);
-					return -1;
+				if (bindresvport_sa(s, res->ai_addr) == -1) {
+					if ((errno != EPERM) ||
+					    (bind(s, res->ai_addr,
+					    res->ai_addrlen) == -1)) {
+						_msgout("cannot bind "
+						    "%s socket: %s",
+						    nconf->nc_netid,
+						strerror(errno));
+						freeaddrinfo(res0);
+						close(sock);
+						return -1;
+					}
 				}
 				if (nconf->nc_semantics != NC_TPI_CLTS)
 					listen(s, SOMAXCONN);



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