Module Name:    src
Committed By:   joerg
Date:           Sat Aug 27 17:46:34 UTC 2011

Modified Files:
        src/libexec/rshd: rshd.c

Log Message:
Use static. Don't manipulate environ directly, just reset it and use
setenv.


To generate a diff of this commit:
cvs rdiff -u -r1.47 -r1.48 src/libexec/rshd/rshd.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/libexec/rshd/rshd.c
diff -u src/libexec/rshd/rshd.c:1.47 src/libexec/rshd/rshd.c:1.48
--- src/libexec/rshd/rshd.c:1.47	Mon Mar 16 02:20:02 2009
+++ src/libexec/rshd/rshd.c	Sat Aug 27 17:46:34 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: rshd.c,v 1.47 2009/03/16 02:20:02 lukem Exp $	*/
+/*	$NetBSD: rshd.c,v 1.48 2011/08/27 17:46:34 joerg Exp $	*/
 
 /*
  * Copyright (C) 1998 WIDE Project.
@@ -69,7 +69,7 @@
 #if 0
 static char sccsid[] = "@(#)rshd.c	8.2 (Berkeley) 4/6/94";
 #else
-__RCSID("$NetBSD: rshd.c,v 1.47 2009/03/16 02:20:02 lukem Exp $");
+__RCSID("$NetBSD: rshd.c,v 1.48 2011/08/27 17:46:34 joerg Exp $");
 #endif
 #endif /* not lint */
 
@@ -132,19 +132,17 @@
 #define PAM_END
 #endif
 
-int	keepalive = 1;
-int	check_all;
-int	log_success;		/* If TRUE, log all successful accesses */
-int	sent_null;
-
-void	 doit(struct sockaddr *) __dead;
-void	 rshd_errx(int, const char *, ...)
-     __attribute__((__noreturn__, __format__(__printf__, 2, 3)));
-void	 getstr(char *, int, const char *);
-int	 local_domain(char *);
-char	*topdomain(char *);
-void	 usage(void);
-int	 main(int, char *[]);
+static int	keepalive = 1;
+static int	check_all;
+static int	log_success;		/* If TRUE, log all successful accesses */
+static int	sent_null;
+
+__dead static void	 doit(struct sockaddr *);
+__dead static void	 rshd_errx(int, const char *, ...) __printflike(2, 3);
+static void	 getstr(char *, int, const char *);
+static int	 local_domain(char *);
+static char	*topdomain(char *);
+__dead static void	 usage(void);
 
 #define	OPTIONS	"aLln"
 extern int __check_rhosts_file;
@@ -237,15 +235,9 @@
 	doit((struct sockaddr *)&from);
 }
 
-char	username[20] = "USER=";
-char	homedir[64] = "HOME=";
-char	shell[64] = "SHELL=";
-char	path[100] = "PATH=";
-char	*envinit[] =
-	    {homedir, shell, path, username, 0};
-char	**environ;
+extern char	**environ;
 
-void
+static void
 doit(struct sockaddr *fromp)
 {
 	struct passwd *pwd, pwres;
@@ -671,11 +663,14 @@
 		}
 	}
 #endif
+{
+	static char *envinit[] = { NULL };
 	environ = envinit;
-	(void)strlcat(homedir, pwd->pw_dir, sizeof(homedir));
-	(void)strlcat(path, _PATH_DEFPATH, sizeof(path));
-	(void)strlcat(shell, pwd->pw_shell, sizeof(shell));
-	(void)strlcat(username, pwd->pw_name, sizeof(username));
+}
+	setenv("PATH", _PATH_DEFPATH, 1);
+	setenv("HOME", pwd->pw_dir, 1);
+	setenv("SHELL", pwd->pw_shell, 1);
+	setenv("USER", pwd->pw_name, 1);
 #endif
 
 	cp = strrchr(pwd->pw_shell, '/');
@@ -717,7 +712,7 @@
 
 #include <stdarg.h>
 
-void
+static void
 rshd_errx(int error, const char *fmt, ...)
 {
 	va_list ap;
@@ -737,7 +732,7 @@
 	exit(error);
 }
 
-void
+static void
 getstr(char *buf, int cnt, const char *err)
 {
 	char c;
@@ -759,7 +754,7 @@
  * assume that the host is local, as it will be
  * interpreted as such.
  */
-int
+static int
 local_domain(char *h)
 {
 	char localhost[MAXHOSTNAMELEN + 1];
@@ -775,7 +770,7 @@
 	return (0);
 }
 
-char *
+static char *
 topdomain(char *h)
 {
 	char *p, *maybe = NULL;
@@ -791,7 +786,7 @@
 	return (maybe);
 }
 
-void
+static void
 usage(void)
 {
 

Reply via email to