Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Oct 2003 19:29:38 -0700 (PDT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 40241 for review
Message-ID:  <200310230229.h9N2Tcwi056651@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=40241

Change 40241 by rwatson@rwatson_paprika on 2003/10/22 19:29:24

	libexec updates to 39070 from trustedbsd_mac.  Includes libmap
	support to run-time plug libraries (such as threading libraries).

Affected files ...

.. //depot/projects/trustedbsd/sebsd/libexec/ftpd/ftpd.8#4 integrate
.. //depot/projects/trustedbsd/sebsd/libexec/ftpd/ftpd.c#4 integrate
.. //depot/projects/trustedbsd/sebsd/libexec/ftpd/popen.c#2 integrate
.. //depot/projects/trustedbsd/sebsd/libexec/lukemftpd/Makefile#4 integrate
.. //depot/projects/trustedbsd/sebsd/libexec/lukemftpd/nbsd2fbsd.h#3 integrate
.. //depot/projects/trustedbsd/sebsd/libexec/rpc.rquotad/rquotad.c#2 integrate
.. //depot/projects/trustedbsd/sebsd/libexec/rtld-elf/Makefile#4 integrate
.. //depot/projects/trustedbsd/sebsd/libexec/rtld-elf/libmap.c#3 integrate
.. //depot/projects/trustedbsd/sebsd/libexec/rtld-elf/libmap.h#3 integrate
.. //depot/projects/trustedbsd/sebsd/libexec/rtld-elf/malloc.c#4 integrate
.. //depot/projects/trustedbsd/sebsd/libexec/rtld-elf/rtld.c#4 integrate
.. //depot/projects/trustedbsd/sebsd/libexec/rtld-elf/rtld.h#4 integrate
.. //depot/projects/trustedbsd/sebsd/libexec/talkd/talkd.8#2 integrate
.. //depot/projects/trustedbsd/sebsd/libexec/talkd/talkd.c#4 integrate

Differences ...

==== //depot/projects/trustedbsd/sebsd/libexec/ftpd/ftpd.8#4 (text+ko) ====

@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)ftpd.8	8.2 (Berkeley) 4/19/94
-.\" $FreeBSD: src/libexec/ftpd/ftpd.8,v 1.64 2003/06/08 12:39:17 charnier Exp $
+.\" $FreeBSD: src/libexec/ftpd/ftpd.8,v 1.66 2003/09/14 16:42:46 ume Exp $
 .\"
 .Dd January 27, 2000
 .Dt FTPD 8
@@ -68,16 +68,8 @@
 .It Fl 4
 When
 .Fl D
-is specified, accept IPv4 connections.
-When
-.Fl 6
-is also specified, accept IPv4 connection via
-.Dv AF_INET6
-socket.
-When
-.Fl 6
-is not specified, accept IPv4 connection via
-.Dv AF_INET
+is specified, accept connections via
+.Dv AF_INET4
 socket.
 .It Fl 6
 When
@@ -204,6 +196,8 @@
 Refer to
 .Xr umask 2
 for details.
+This option may be overridden by
+.Xr login.conf 5 .
 .It Fl v
 A synonym for
 .Fl d .

==== //depot/projects/trustedbsd/sebsd/libexec/ftpd/ftpd.c#4 (text+ko) ====

@@ -44,7 +44,7 @@
 static char sccsid[] = "@(#)ftpd.c	8.4 (Berkeley) 4/16/94";
 #endif
 static const char rcsid[] =
-  "$FreeBSD: src/libexec/ftpd/ftpd.c,v 1.145 2003/07/09 12:46:24 yar Exp $";
+  "$FreeBSD: src/libexec/ftpd/ftpd.c,v 1.146 2003/09/14 16:42:46 ume Exp $";
 #endif /* not lint */
 
 /*
@@ -106,7 +106,6 @@
 extern	off_t restart_point;
 extern	char cbuf[];
 
-union sockunion server_addr;
 union sockunion ctrl_addr;
 union sockunion data_source;
 union sockunion data_dest;
@@ -258,6 +257,7 @@
 static void	 reapchild(int);
 static void      logxfer(char *, off_t, time_t);
 static char	*doublequote(char *);
+static int	*socksetup(int, char *, const char *);
 
 static char *
 curdir(void)
@@ -282,7 +282,6 @@
 	char	*bindname = NULL;
 	const char *bindport = "ftp";
 	int	family = AF_UNSPEC;
-	int	enable_v4 = 0;
 	struct sigaction sa;
 
 	tzset();		/* in case no timezone database in ~ftp */
@@ -304,13 +303,11 @@
 	                    "46a:AdDEhlmMoOp:P:rRSt:T:u:UvW")) != -1) {
 		switch (ch) {
 		case '4':
-			enable_v4 = 1;
-			if (family == AF_UNSPEC)
-				family = AF_INET;
+			family = (family == AF_INET6) ? AF_UNSPEC : AF_INET;
 			break;
 
 		case '6':
-			family = AF_INET6;
+			family = (family == AF_INET) ? AF_UNSPEC : AF_INET6;
 			break;
 
 		case 'a':
@@ -430,8 +427,9 @@
 	openlog("ftpd", LOG_PID | LOG_NDELAY, LOG_FTP);
 
 	if (daemon_mode) {
-		int ctl_sock, fd;
-		struct addrinfo hints, *res;
+		int *ctl_sock, fd, maxfd = -1, nfds, i;
+		fd_set defreadfds, readfds;
+		pid_t pid;
 
 		/*
 		 * Detach from parent.
@@ -442,61 +440,26 @@
 		}
 		sa.sa_handler = reapchild;
 		(void)sigaction(SIGCHLD, &sa, NULL);
-		/* init bind_sa */
-		memset(&hints, 0, sizeof(hints));
 
-		hints.ai_family = family == AF_UNSPEC ? AF_INET : family;
-		hints.ai_socktype = SOCK_STREAM;
-		hints.ai_protocol = 0;
-		hints.ai_flags = AI_PASSIVE;
-		error = getaddrinfo(bindname, bindport, &hints, &res);
-		if (error) {
-			if (family == AF_UNSPEC) {
-				hints.ai_family = AF_UNSPEC;
-				error = getaddrinfo(bindname, bindport, &hints,
-						    &res);
-			}
-		}
-		if (error) {
-			syslog(LOG_ERR, "%s", gai_strerror(error));
-			if (error == EAI_SYSTEM)
-				syslog(LOG_ERR, "%s", strerror(errno));
-			exit(1);
-		}
-		if (res->ai_addr == NULL) {
-			syslog(LOG_ERR, "-a %s: getaddrinfo failed", hostname);
-			exit(1);
-		} else
-			family = res->ai_addr->sa_family;
 		/*
 		 * Open a socket, bind it to the FTP port, and start
 		 * listening.
 		 */
-		ctl_sock = socket(family, SOCK_STREAM, 0);
-		if (ctl_sock < 0) {
-			syslog(LOG_ERR, "control socket: %m");
+		ctl_sock = socksetup(family, bindname, bindport);
+		if (ctl_sock == NULL)
 			exit(1);
+
+		FD_ZERO(&defreadfds);
+		for (i = 1; i <= *ctl_sock; i++) {
+			FD_SET(ctl_sock[i], &defreadfds);
+			if (listen(ctl_sock[i], 32) < 0) {
+				syslog(LOG_ERR, "control listen: %m");
+				exit(1);
+			}
+			if (maxfd < ctl_sock[i])
+				maxfd = ctl_sock[i];
 		}
-		if (setsockopt(ctl_sock, SOL_SOCKET, SO_REUSEADDR,
-		    &on, sizeof(on)) < 0)
-			syslog(LOG_WARNING,
-			       "control setsockopt (SO_REUSEADDR): %m");
-		if (family == AF_INET6 && enable_v4 == 0) {
-			if (setsockopt(ctl_sock, IPPROTO_IPV6, IPV6_V6ONLY,
-				       &on, sizeof (on)) < 0)
-				syslog(LOG_WARNING,
-				       "control setsockopt (IPV6_V6ONLY): %m");
-		}
-		memcpy(&server_addr, res->ai_addr, res->ai_addr->sa_len);
-		if (bind(ctl_sock, (struct sockaddr *)&server_addr,
-			 server_addr.su_len) < 0) {
-			syslog(LOG_ERR, "control bind: %m");
-			exit(1);
-		}
-		if (listen(ctl_sock, 32) < 0) {
-			syslog(LOG_ERR, "control listen: %m");
-			exit(1);
-		}
+
 		/*
 		 * Atomically write process ID
 		 */
@@ -524,16 +487,31 @@
 		 * children to handle them.
 		 */
 		while (1) {
-			addrlen = server_addr.su_len;
-			fd = accept(ctl_sock, (struct sockaddr *)&his_addr, &addrlen);
-			if (fork() == 0) {
-				/* child */
-				(void) dup2(fd, 0);
-				(void) dup2(fd, 1);
-				close(ctl_sock);
+			FD_COPY(&defreadfds, &readfds);
+			nfds = select(maxfd + 1, &readfds, NULL, NULL, 0);
+			if (nfds <= 0) {
+				if (nfds < 0 && errno != EINTR)
+					syslog(LOG_WARNING, "select: %m");
+				continue;
+			}
+
+			pid = -1;
+                        for (i = 1; i <= *ctl_sock; i++)
+				if (FD_ISSET(ctl_sock[i], &readfds)) {
+					addrlen = sizeof(his_addr);
+					fd = accept(ctl_sock[i],
+					    (struct sockaddr *)&his_addr,
+					    &addrlen);
+					if ((pid = fork()) == 0) {
+						/* child */
+						(void) dup2(fd, 0);
+						(void) dup2(fd, 1);
+						close(ctl_sock[i]);
+					} else
+						close(fd);
+				}
+			if (pid == 0)
 				break;
-			}
-			close(fd);
 		}
 	} else {
 		addrlen = sizeof(his_addr);
@@ -3162,3 +3140,73 @@
 
 	return (s2);
 }
+
+/* setup server socket for specified address family */
+/* if af is PF_UNSPEC more than one socket may be returned */
+/* the returned list is dynamically allocated, so caller needs to free it */
+static int *
+socksetup(int af, char *bindname, const char *bindport)
+{
+	struct addrinfo hints, *res, *r;
+	int error, maxs, *s, *socks;
+	const int on = 1;
+
+	memset(&hints, 0, sizeof(hints));
+	hints.ai_flags = AI_PASSIVE;
+	hints.ai_family = af;
+	hints.ai_socktype = SOCK_STREAM;
+	error = getaddrinfo(bindname, bindport, &hints, &res);
+	if (error) {
+		syslog(LOG_ERR, "%s", gai_strerror(error));
+		if (error == EAI_SYSTEM)
+			syslog(LOG_ERR, "%s", strerror(errno));
+		return NULL;
+	}
+
+	/* Count max number of sockets we may open */
+	for (maxs = 0, r = res; r; r = r->ai_next, maxs++)
+		;
+	socks = malloc((maxs + 1) * sizeof(int));
+	if (!socks) {
+		freeaddrinfo(res);
+		syslog(LOG_ERR, "couldn't allocate memory for sockets");
+		return NULL;
+	}
+
+	*socks = 0;   /* num of sockets counter at start of array */
+	s = socks + 1;
+	for (r = res; r; r = r->ai_next) {
+		*s = socket(r->ai_family, r->ai_socktype, r->ai_protocol);
+		if (*s < 0) {
+			syslog(LOG_DEBUG, "control socket: %m");
+			continue;
+		}
+		if (setsockopt(*s, SOL_SOCKET, SO_REUSEADDR,
+		    &on, sizeof(on)) < 0)
+			syslog(LOG_WARNING,
+			    "control setsockopt (SO_REUSEADDR): %m");
+		if (r->ai_family == AF_INET6) {
+			if (setsockopt(*s, IPPROTO_IPV6, IPV6_V6ONLY,
+			    &on, sizeof(on)) < 0)
+				syslog(LOG_WARNING,
+				    "control setsockopt (IPV6_V6ONLY): %m");
+		}
+		if (bind(*s, r->ai_addr, r->ai_addrlen) < 0) {
+			syslog(LOG_DEBUG, "control bind: %m");
+			close(*s);
+			continue;
+		}
+		(*socks)++;
+		s++;
+	}
+
+	if (res)
+		freeaddrinfo(res);
+
+	if (*socks == 0) {
+		syslog(LOG_ERR, "control socket: Couldn't bind to any socket");
+		free(socks);
+		return NULL;
+	}
+	return(socks);
+}

==== //depot/projects/trustedbsd/sebsd/libexec/ftpd/popen.c#2 (text+ko) ====

@@ -39,7 +39,7 @@
 static char sccsid[] = "@(#)popen.c	8.3 (Berkeley) 4/6/94";
 #endif
 static const char rcsid[] =
-  "$FreeBSD: src/libexec/ftpd/popen.c,v 1.23 2002/07/17 05:47:49 mikeh Exp $";
+  "$FreeBSD: src/libexec/ftpd/popen.c,v 1.24 2003/09/01 04:12:18 kan Exp $";
 #endif /* not lint */
 
 #include <sys/types.h>
@@ -58,7 +58,6 @@
 #include "pathnames.h"
 #include <syslog.h>
 #include <time.h>
-#include <varargs.h>
 
 #define	MAXUSRARGS	100
 #define	MAXGLOBARGS	1000

==== //depot/projects/trustedbsd/sebsd/libexec/lukemftpd/Makefile#4 (text+ko) ====

@@ -1,5 +1,5 @@
 #	@(#)Makefile	8.2 (Berkeley) 4/4/94
-# $FreeBSD: src/libexec/lukemftpd/Makefile,v 1.11 2003/06/14 19:32:51 obrien Exp $
+# $FreeBSD: src/libexec/lukemftpd/Makefile,v 1.13 2003/09/10 19:03:48 obrien Exp $
 
 LUKEMFTPD=	${.CURDIR}/../../contrib/lukemftpd
 .PATH: ${LUKEMFTPD}/src ${LUKEMFTPD}/libnetbsd
@@ -13,7 +13,7 @@
 WFORMAT= 0
 CFLAGS+= -include nbsd2fbsd.h
 CFLAGS+= -I${.CURDIR} -I${LUKEMFTPD} -I${LUKEMFTPD}/src
-CFLAGS+= -I${.CURDIR}/../..//lib/libc/stdtime
+CFLAGS+= -I${.CURDIR}/../../lib/libc/stdtime
 YFLAGS=
 
 LDADD=	-lcrypt -lutil
@@ -43,3 +43,5 @@
 CLEANFILES+= lukemftpd.8
 
 .include <bsd.prog.mk>
+
+${OBJS}: ${.CURDIR}/nbsd2fbsd.h

==== //depot/projects/trustedbsd/sebsd/libexec/lukemftpd/nbsd2fbsd.h#3 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/libexec/lukemftpd/nbsd2fbsd.h,v 1.3 2003/01/06 04:42:20 obrien Exp $ */
+/* $FreeBSD: src/libexec/lukemftpd/nbsd2fbsd.h,v 1.4 2003/09/11 03:28:21 obrien Exp $ */
 
 /* XXX: Depend on our system headers protecting against multiple includes. */
 #include <paths.h>
@@ -15,3 +15,10 @@
 #endif
 long long strsuftollx(const char *, const char *,
     long long, long long, char *, size_t);
+
+/*
+ * IEEE Std 1003.1c-95, adopted in X/Open CAE Specification Issue 5 Version 2
+ */
+#if __POSIX_VISIBLE >= 199506 || __XSI_VISIBLE >= 500
+#define	LOGIN_NAME_MAX	MAXLOGNAME	/* max login name length (incl. NUL) */
+#endif

==== //depot/projects/trustedbsd/sebsd/libexec/rpc.rquotad/rquotad.c#2 (text+ko) ====

@@ -6,7 +6,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-  "$FreeBSD: src/libexec/rpc.rquotad/rquotad.c,v 1.7 2002/07/15 18:51:57 alfred Exp $";
+  "$FreeBSD: src/libexec/rpc.rquotad/rquotad.c,v 1.8 2003/09/01 04:12:18 kan Exp $";
 #endif /* not lint */
 
 #include <sys/param.h>
@@ -28,7 +28,6 @@
 #include <unistd.h>
 
 #include <syslog.h>
-#include <varargs.h>
 
 #include <ufs/ufs/quota.h>
 #include <rpc/rpc.h>

==== //depot/projects/trustedbsd/sebsd/libexec/rtld-elf/Makefile#4 (text+ko) ====

@@ -1,26 +1,19 @@
-# $FreeBSD: src/libexec/rtld-elf/Makefile,v 1.20 2003/06/04 05:42:04 obrien Exp $
+# $FreeBSD: src/libexec/rtld-elf/Makefile,v 1.25 2003/09/13 21:50:35 mdodd Exp $
 
 PROG=		ld-elf.so.1
 SRCS=		rtld_start.S rtld.c rtld_lock.c map_object.c malloc.c \
-		xmalloc.c debug.c reloc.c
+		xmalloc.c debug.c reloc.c libmap.c
 MAN=		rtld.1
 CSTD?=		gnu99
 CFLAGS+=	-Wall -DFREEBSD_ELF -DIN_RTLD
 CFLAGS+=	-I${.CURDIR}/${MACHINE_ARCH} -I${.CURDIR}
 LDFLAGS+=	-nostdlib -e .rtld_start
 INSTALLFLAGS=	-fschg -C -b
+BINDIR=		/libexec
+SYMLINKS=	${BINDIR}/${PROG} /usr/libexec/${PROG}
 MLINKS=		rtld.1 ld-elf.so.1.1 \
 		rtld.1 ld.so.1
 
-#
-# To enable the libmap.conf functionality please
-# add 'WITH_LIBMAP=yes' to /etc/make.conf, recompile
-# and reinstall rtld-elf.
-.ifdef WITH_LIBMAP
-CFLAGS+=	-DWITH_LIBMAP
-SRCS+=		libmap.c
-.endif
-
 .if exists(${.CURDIR}/${MACHINE_ARCH}/Makefile.inc)
 .include "${.CURDIR}/${MACHINE_ARCH}/Makefile.inc"
 .endif
@@ -50,6 +43,11 @@
 dyn_hack.so:
 	${CC} -shared -nostdlib -o dyn_hack.so -x c /dev/null
 
+# Since moving rtld-elf to /libexec, we need to create a symlink.
+# Fixup the existing binary that's there so we can symlink over it.
+beforeinstall:
+	-chflags noschg ${DESTDIR}/usr/libexec/${PROG}
+
 .PATH: ${.CURDIR}/${MACHINE_ARCH}
 
 .include <bsd.prog.mk>

==== //depot/projects/trustedbsd/sebsd/libexec/rtld-elf/libmap.c#3 (text+ko) ====

@@ -1,5 +1,5 @@
 /*
- * $FreeBSD: src/libexec/rtld-elf/libmap.c,v 1.8 2003/06/18 05:31:08 mdodd Exp $
+ * $FreeBSD: src/libexec/rtld-elf/libmap.c,v 1.9 2003/09/13 21:43:08 mdodd Exp $
  */
 
 #include <stdio.h>
@@ -41,7 +41,7 @@
 #define	iseol(c)	(((c) == '#') || ((c) == '\0') || \
 			 ((c) == '\n') || ((c) == '\r'))
 
-void
+int
 lm_init (void)
 {
 	FILE	*fp;
@@ -55,7 +55,7 @@
 	TAILQ_INIT(&lmp_head);
 
 	if ((fp = fopen(_PATH_LIBMAP_CONF, "r")) == NULL)
-		return;
+		return (1);
 
 	p = NULL;
 	while ((cp = fgets(line, MAXPATHLEN + 1, fp)) != NULL) {
@@ -128,7 +128,7 @@
 		lm_add(p, f, t);
 	}
 	fclose(fp);
-	return;
+	return (0);
 }
 
 static void

==== //depot/projects/trustedbsd/sebsd/libexec/rtld-elf/libmap.h#3 (text+ko) ====

@@ -1,7 +1,7 @@
 /*
- * $FreeBSD: src/libexec/rtld-elf/libmap.h,v 1.1 2003/04/07 16:21:25 mdodd Exp $
+ * $FreeBSD: src/libexec/rtld-elf/libmap.h,v 1.2 2003/09/13 21:43:08 mdodd Exp $
  */
 
-void	lm_init (void);
+int	lm_init (void);
 void	lm_fini (void);
 char *	lm_find (const char *, const char *);

==== //depot/projects/trustedbsd/sebsd/libexec/rtld-elf/malloc.c#4 (text+ko) ====

@@ -33,7 +33,7 @@
 
 #if defined(LIBC_SCCS) && !defined(lint)
 /*static char *sccsid = "from: @(#)malloc.c	5.11 (Berkeley) 2/23/91";*/
-static char *rcsid = "$FreeBSD: src/libexec/rtld-elf/malloc.c,v 1.9 2003/05/04 00:56:00 obrien Exp $";
+static char *rcsid = "$FreeBSD: src/libexec/rtld-elf/malloc.c,v 1.10 2003/08/22 02:22:59 imp Exp $";
 #endif /* LIBC_SCCS and not lint */
 
 /*
@@ -51,10 +51,10 @@
 #include <err.h>
 #include <paths.h>
 #include <stdarg.h>
+#include <stddef.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <stddef.h>
 #include <unistd.h>
 #include <sys/param.h>
 #include <sys/mman.h>

==== //depot/projects/trustedbsd/sebsd/libexec/rtld-elf/rtld.c#4 (text+ko) ====

@@ -23,7 +23,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/libexec/rtld-elf/rtld.c,v 1.85 2003/06/19 03:55:38 mdodd Exp $
+ * $FreeBSD: src/libexec/rtld-elf/rtld.c,v 1.89 2003/09/13 21:50:36 mdodd Exp $
  */
 
 /*
@@ -52,12 +52,10 @@
 
 #include "debug.h"
 #include "rtld.h"
-#ifdef WITH_LIBMAP
 #include "libmap.h"
-#endif
 
 #define END_SYM		"_end"
-#define PATH_RTLD	"/usr/libexec/ld-elf.so.1"
+#define PATH_RTLD	"/libexec/ld-elf.so.1"
 
 /* Types. */
 typedef void (*func_ptr_type)();
@@ -340,10 +338,8 @@
     sym_zero.st_info = ELF_ST_INFO(STB_GLOBAL, STT_NOTYPE);
     sym_zero.st_shndx = SHN_UNDEF;
 
-#ifdef WITH_LIBMAP
     if (!libmap_disable)
-        lm_init();
-#endif
+        libmap_disable = (bool)lm_init();
 
     dbg("loading LD_PRELOAD libraries");
     if (load_preload_objects() == -1)
@@ -807,7 +803,7 @@
  *   rpath in the referencing file
  *   LD_LIBRARY_PATH
  *   ldconfig hints
- *   /usr/lib
+ *   /lib:/usr/lib
  */
 static char *
 find_library(const char *xname, const Obj_Entry *refobj)
@@ -824,10 +820,8 @@
 	return xstrdup(xname);
     }
 
-#ifdef WITH_LIBMAP
     if (libmap_disable || (refobj == NULL) ||
 	(name = lm_find(refobj->path, xname)) == NULL)
-#endif
 	name = (char *)xname;
 
     dbg(" Searching for \"%s\"", name);
@@ -1464,10 +1458,8 @@
 	obj->refcount = 0;
     objlist_call_fini(&list_fini);
     /* No need to remove the items from the list, since we are exiting. */
-#ifdef WITH_LIBMAP
     if (!libmap_disable)
         lm_fini();
-#endif
 }
 
 static void *

==== //depot/projects/trustedbsd/sebsd/libexec/rtld-elf/rtld.h#4 (text+ko) ====

@@ -22,7 +22,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/libexec/rtld-elf/rtld.h,v 1.31 2003/06/19 03:55:38 mdodd Exp $
+ * $FreeBSD: src/libexec/rtld-elf/rtld.h,v 1.32 2003/08/17 07:55:17 gordon Exp $
  */
 
 #ifndef RTLD_H /* { */
@@ -40,7 +40,7 @@
 #include "rtld_machdep.h"
 
 #ifndef STANDARD_LIBRARY_PATH
-#define STANDARD_LIBRARY_PATH	"/usr/lib"
+#define STANDARD_LIBRARY_PATH	"/lib:/usr/lib"
 #endif
 
 #define NEW(type)	((type *) xmalloc(sizeof(type)))

==== //depot/projects/trustedbsd/sebsd/libexec/talkd/talkd.8#2 (text+ko) ====

@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)talkd.8	8.2 (Berkeley) 12/11/93
-.\" $FreeBSD: src/libexec/talkd/talkd.8,v 1.6 2002/07/06 19:19:39 charnier Exp $
+.\" $FreeBSD: src/libexec/talkd/talkd.8,v 1.7 2003/09/08 19:57:18 ru Exp $
 .\"
 .Dd December 11, 1993
 .Dt TALKD 8
@@ -55,7 +55,7 @@
 type
 .Tn LOOK_UP
 (see
-.Aq Pa protocols/talkd.h ) .
+.In protocols/talkd.h ) .
 This causes the server to search its invitation
 tables to check if an invitation currently exists for the caller
 (to speak to the callee specified in the message).

==== //depot/projects/trustedbsd/sebsd/libexec/talkd/talkd.c#4 (text+ko) ====

@@ -42,7 +42,7 @@
 static char sccsid[] = "@(#)talkd.c	8.1 (Berkeley) 6/4/93";
 #endif
 static const char rcsid[] =
-  "$FreeBSD: src/libexec/talkd/talkd.c,v 1.14 2003/04/03 05:13:27 jmallett Exp $";
+  "$FreeBSD: src/libexec/talkd/talkd.c,v 1.15 2003/09/28 09:16:09 tjr Exp $";
 #endif /* not lint */
 
 /*
@@ -86,6 +86,7 @@
 {
 	register CTL_MSG *mp = &request;
 	int cc;
+	struct sockaddr ctl_addr;
 
 #ifdef NOTDEF
 	/*
@@ -116,12 +117,13 @@
 			continue;
 		}
 		lastmsgtime = time(0);
+		(void)memcpy(&ctl_addr, &mp->ctl_addr, sizeof(ctl_addr));
+		ctl_addr.sa_family = ntohs(mp->ctl_addr.sa_family);
+		ctl_addr.sa_len = sizeof(ctl_addr);
 		process_request(mp, &response);
 		/* can block here, is this what I want? */
-		mp->ctl_addr.sa_family = htons(mp->ctl_addr.sa_family);
-		cc = sendto(sockt, (char *)&response,
-		    sizeof (response), 0, (struct sockaddr *)&mp->ctl_addr,
-		    sizeof (mp->ctl_addr));
+		cc = sendto(sockt, (char *)&response, sizeof (response), 0,
+		    &ctl_addr, sizeof (ctl_addr));
 		if (cc != sizeof (response))
 			syslog(LOG_WARNING, "sendto: %m");
 	}



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