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) {