diff options
author | green <green@FreeBSD.org> | 1999-07-23 15:49:14 +0000 |
---|---|---|
committer | green <green@FreeBSD.org> | 1999-07-23 15:49:14 +0000 |
commit | 0341c2834a1eb290cf90d5b3013397f833512f15 (patch) | |
tree | a702733c231bb3776ad08f23db59489decd01e40 | |
parent | 58474fd9248be90a5f341c542f59c7a60aae2e3c (diff) | |
download | FreeBSD-src-0341c2834a1eb290cf90d5b3013397f833512f15.zip FreeBSD-src-0341c2834a1eb290cf90d5b3013397f833512f15.tar.gz |
Ahem. Put things back a bit. I declare variables in the scope they're
used! I don't declare every variable at the top of a function because
that wastes stack space. I've clarified the error a bit (for if asprintf()
filas.)
-rw-r--r-- | usr.sbin/inetd/builtins.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/usr.sbin/inetd/builtins.c b/usr.sbin/inetd/builtins.c index 89f4e06..1f60f25 100644 --- a/usr.sbin/inetd/builtins.c +++ b/usr.sbin/inetd/builtins.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: builtins.c,v 1.5 1999/07/23 15:00:07 sheldonh Exp $ + * $Id: builtins.c,v 1.6 1999/07/23 15:26:42 sheldonh Exp $ * */ @@ -290,7 +290,7 @@ iderror(lport, fport, s, er) asprintf(&p, "%d , %d : ERROR : %s\r\n", lport, fport, er == -1 ? "HIDDEN-USER" : er ? strerror(er) : "UNKNOWN-ERROR"); if (p == NULL) { - syslog(LOG_ERR, "Out of memory."); + syslog(LOG_ERR, "asprintf: %s", strerror(errno)); exit(EX_OSERR); } write(s, p, strlen(p)); @@ -305,9 +305,6 @@ ident_stream(s, sep) /* Ident service */ int s; struct servtab *sep; { - FILE *fakeid = NULL; - struct stat sb; - struct utsname un; struct sockaddr_in sin[2]; struct ucred uc; struct passwd *pw; @@ -316,9 +313,7 @@ ident_stream(s, sep) /* Ident service */ 0 }; fd_set fdset; - char fakeid_path[PATH_MAX]; char buf[BUFSIZE], *cp = NULL, *p, **av, *osname = NULL; - int sec, usec; int len, c, rflag = 0, fflag = 0, argc = 0; u_short lport, fport; @@ -339,7 +334,9 @@ ident_stream(s, sep) /* Ident service */ case 'o': osname = optarg; break; - case 't': + case 't': { + int sec, usec; + switch (sscanf(optarg, "%d.%d", &sec, &usec)) { case 2: tv.tv_usec = usec; @@ -351,12 +348,15 @@ ident_stream(s, sep) /* Ident service */ warnx("bad -t argument"); break; } + } default: break; } } if (osname == NULL) { - if (uname(&un)) + struct utsname un; + + if (uname(&un) == -1) iderror(0, 0, s, errno); osname = un.sysname; } @@ -392,6 +392,10 @@ ident_stream(s, sep) /* Ident service */ if (pw == NULL) iderror(lport, fport, s, errno); if (fflag) { + FILE *fakeid = NULL; + char fakeid_path[PATH_MAX]; + struct stat sb; + seteuid(pw->pw_uid); setegid(pw->pw_gid); snprintf(fakeid_path, sizeof(fakeid_path), "%s/.fakeid", |