summaryrefslogtreecommitdiffstats
path: root/usr.sbin/inetd
diff options
context:
space:
mode:
authorgreen <green@FreeBSD.org>1999-07-23 15:49:14 +0000
committergreen <green@FreeBSD.org>1999-07-23 15:49:14 +0000
commit0341c2834a1eb290cf90d5b3013397f833512f15 (patch)
treea702733c231bb3776ad08f23db59489decd01e40 /usr.sbin/inetd
parent58474fd9248be90a5f341c542f59c7a60aae2e3c (diff)
downloadFreeBSD-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.)
Diffstat (limited to 'usr.sbin/inetd')
-rw-r--r--usr.sbin/inetd/builtins.c22
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",
OpenPOWER on IntegriCloud