Blob Blame History Raw
diff -up tcp_wrappers_7.6-ipv6.4/clean_exit.c.warnings tcp_wrappers_7.6-ipv6.4/clean_exit.c
--- tcp_wrappers_7.6-ipv6.4/clean_exit.c.warnings	1994-12-28 17:42:20.000000000 +0100
+++ tcp_wrappers_7.6-ipv6.4/clean_exit.c	2013-08-15 18:51:57.533244197 +0200
@@ -13,6 +13,7 @@ static char sccsid[] = "@(#) clean_exit.
 #endif
 
 #include <stdio.h>
+#include <unistd.h>
 
 extern void exit();
 
diff -up tcp_wrappers_7.6-ipv6.4/fakelog.c.warnings tcp_wrappers_7.6-ipv6.4/fakelog.c
--- tcp_wrappers_7.6-ipv6.4/fakelog.c.warnings	1994-12-28 17:42:22.000000000 +0100
+++ tcp_wrappers_7.6-ipv6.4/fakelog.c	2013-08-15 18:51:57.533244197 +0200
@@ -17,6 +17,7 @@ static char sccsid[] = "@(#) fakelog.c 1
 
 /* ARGSUSED */
 
+void
 openlog(name, logopt, facility)
 char   *name;
 int     logopt;
@@ -27,6 +28,7 @@ int     facility;
 
 /* vsyslog - format one record */
 
+void
 vsyslog(severity, fmt, ap)
 int     severity;
 char   *fmt;
@@ -43,6 +45,7 @@ va_list ap;
 
 /* VARARGS */
 
+void
 VARARGS(syslog, int, severity)
 {
     va_list ap;
@@ -56,6 +59,7 @@ VARARGS(syslog, int, severity)
 
 /* closelog - dummy */
 
+void
 closelog()
 {
     /* void */
diff -up tcp_wrappers_7.6-ipv6.4/fix_options.c.warnings tcp_wrappers_7.6-ipv6.4/fix_options.c
--- tcp_wrappers_7.6-ipv6.4/fix_options.c.warnings	2013-08-15 18:51:57.446243821 +0200
+++ tcp_wrappers_7.6-ipv6.4/fix_options.c	2013-08-15 18:51:57.534244202 +0200
@@ -32,13 +32,15 @@ static char sccsid[] = "@(#) fix_options
 
 /* fix_options - get rid of IP-level socket options */
 
+void
 fix_options(request)
 struct request_info *request;
 {
 #ifdef IP_OPTIONS
     unsigned char optbuf[BUFFER_SIZE / 3], *cp;
     char    lbuf[BUFFER_SIZE], *lp;
-    int     optsize = sizeof(optbuf), ipproto;
+    unsigned int optsize = sizeof(optbuf);
+    int     ipproto;
     struct protoent *ip;
     int     fd = request->fd;
     unsigned int opt;
@@ -46,7 +48,7 @@ struct request_info *request;
     struct in_addr dummy;
 #ifdef HAVE_IPV6
     struct sockaddr_storage ss;
-    int sslen;
+    unsigned int sslen;
 
     /*
      * check if this is AF_INET socket
diff -up tcp_wrappers_7.6-ipv6.4/hosts_access.c.warnings tcp_wrappers_7.6-ipv6.4/hosts_access.c
--- tcp_wrappers_7.6-ipv6.4/hosts_access.c.warnings	2013-08-15 18:51:57.529244180 +0200
+++ tcp_wrappers_7.6-ipv6.4/hosts_access.c	2013-08-15 18:51:57.535244206 +0200
@@ -33,6 +33,9 @@ static char sccsid[] = "@(#) hosts_acces
 #include <errno.h>
 #include <setjmp.h>
 #include <string.h>
+#include <stdlib.h>
+#include <rpcsvc/ypclnt.h>
+#include <netdb.h>
 
 extern char *fgets();
 extern int errno;
@@ -49,6 +52,8 @@ extern int errno;
 
 extern jmp_buf tcpd_buf;
 
+int match_pattern_ylo(const char *, const char *);
+
 /* Delimiters for lists of daemons or clients. */
 
 static char sep[] = ", \t\r\n";
diff -up tcp_wrappers_7.6-ipv6.4/inetcf.c.warnings tcp_wrappers_7.6-ipv6.4/inetcf.c
--- tcp_wrappers_7.6-ipv6.4/inetcf.c.warnings	2013-08-15 18:51:57.474243942 +0200
+++ tcp_wrappers_7.6-ipv6.4/inetcf.c	2013-08-15 18:51:57.535244206 +0200
@@ -42,6 +42,8 @@ char   *inet_files[] = {
 static void inet_chk();
 static char *base_name();
 
+int     check_path(char *, struct stat *);
+
  /*
   * Structure with everything we know about a service.
   */
diff -up tcp_wrappers_7.6-ipv6.4/options.c.warnings tcp_wrappers_7.6-ipv6.4/options.c
--- tcp_wrappers_7.6-ipv6.4/options.c.warnings	2013-08-15 18:51:57.520244141 +0200
+++ tcp_wrappers_7.6-ipv6.4/options.c	2013-08-15 18:51:57.536244211 +0200
@@ -41,12 +41,14 @@ static char sccsid[] = "@(#) options.c 1
 #include <netinet/in.h>
 #include <netdb.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <syslog.h>
 #include <pwd.h>
 #include <grp.h>
 #include <ctype.h>
 #include <setjmp.h>
 #include <string.h>
+#include <unistd.h>
 
 #ifndef MAXPATHNAMELEN
 #define MAXPATHNAMELEN  BUFSIZ
@@ -108,21 +110,21 @@ struct option {
 /* List of known keywords. Add yours here. */
 
 static struct option option_table[] = {
-    "user", user_option, NEED_ARG,
-    "group", group_option, NEED_ARG,
-    "umask", umask_option, NEED_ARG,
-    "linger", linger_option, NEED_ARG,
-    "keepalive", keepalive_option, 0,
-    "spawn", spawn_option, NEED_ARG | EXPAND_ARG,
-    "twist", twist_option, NEED_ARG | EXPAND_ARG | USE_LAST,
-    "rfc931", rfc931_option, OPT_ARG,
-    "setenv", setenv_option, NEED_ARG | EXPAND_ARG,
-    "nice", nice_option, OPT_ARG,
-    "severity", severity_option, NEED_ARG,
-    "allow", allow_option, USE_LAST,
-    "deny", deny_option, USE_LAST,
-    "banners", banners_option, NEED_ARG,
-    0,
+    { "user", user_option, NEED_ARG },
+    { "group", group_option, NEED_ARG },
+    { "umask", umask_option, NEED_ARG },
+    { "linger", linger_option, NEED_ARG },
+    { "keepalive", keepalive_option, 0 },
+    { "spawn", spawn_option, NEED_ARG | EXPAND_ARG },
+    { "twist", twist_option, NEED_ARG | EXPAND_ARG | USE_LAST },
+    { "rfc931", rfc931_option, OPT_ARG },
+    { "setenv", setenv_option, NEED_ARG | EXPAND_ARG },
+    { "nice", nice_option, OPT_ARG },
+    { "severity", severity_option, NEED_ARG },
+    { "allow", allow_option, USE_LAST },
+    { "deny", deny_option, USE_LAST },
+    { "banners", banners_option, NEED_ARG },
+    { NULL, NULL, 0 }
 };
 
 /* process_options - process access control options */
@@ -227,13 +229,13 @@ struct request_info *request;
     sprintf(path, "%s/%s", value, eval_daemon(request));
     if ((fp = fopen(path, "r")) != 0) {
 	while ((ch = fgetc(fp)) == 0)
-	    write(request->fd, "", 1);
+	    if (write(request->fd, "", 1));
 	ungetc(ch, fp);
 	while (fgets(ibuf, sizeof(ibuf) - 1, fp)) {
 	    if (split_at(ibuf, '\n'))
 		strcat(ibuf, "\r\n");
 	    percent_x(obuf, sizeof(obuf), ibuf, request);
-	    write(request->fd, obuf, strlen(obuf));
+	    if(write(request->fd, obuf, strlen(obuf)));
 	}
 	fclose(fp);
     } else if (stat(value, &st) < 0) {
@@ -462,85 +464,85 @@ struct syslog_names {
 
 static struct syslog_names log_fac[] = {
 #ifdef LOG_KERN
-    "kern", LOG_KERN,
+    { "kern", LOG_KERN },
 #endif
 #ifdef LOG_USER
-    "user", LOG_USER,
+    { "user", LOG_USER },
 #endif
 #ifdef LOG_MAIL
-    "mail", LOG_MAIL,
+    { "mail", LOG_MAIL },
 #endif
 #ifdef LOG_DAEMON
-    "daemon", LOG_DAEMON,
+    { "daemon", LOG_DAEMON },
 #endif
 #ifdef LOG_AUTH
-    "auth", LOG_AUTH,
+    { "auth", LOG_AUTH },
 #endif
 #ifdef LOG_LPR
-    "lpr", LOG_LPR,
+    { "lpr", LOG_LPR },
 #endif
 #ifdef LOG_NEWS
-    "news", LOG_NEWS,
+    { "news", LOG_NEWS },
 #endif
 #ifdef LOG_UUCP
-    "uucp", LOG_UUCP,
+    { "uucp", LOG_UUCP },
 #endif
 #ifdef LOG_CRON
-    "cron", LOG_CRON,
+    { "cron", LOG_CRON },
 #endif
 #ifdef LOG_LOCAL0
-    "local0", LOG_LOCAL0,
+    { "local0", LOG_LOCAL0 },
 #endif
 #ifdef LOG_LOCAL1
-    "local1", LOG_LOCAL1,
+    { "local1", LOG_LOCAL1 },
 #endif
 #ifdef LOG_LOCAL2
-    "local2", LOG_LOCAL2,
+    { "local2", LOG_LOCAL2 },
 #endif
 #ifdef LOG_LOCAL3
-    "local3", LOG_LOCAL3,
+    { "local3", LOG_LOCAL3 },
 #endif
 #ifdef LOG_LOCAL4
-    "local4", LOG_LOCAL4,
+    { "local4", LOG_LOCAL4 },
 #endif
 #ifdef LOG_LOCAL5
-    "local5", LOG_LOCAL5,
+    { "local5", LOG_LOCAL5 },
 #endif
 #ifdef LOG_LOCAL6
-    "local6", LOG_LOCAL6,
+    { "local6", LOG_LOCAL6 },
 #endif
 #ifdef LOG_LOCAL7
-    "local7", LOG_LOCAL7,
+    { "local7", LOG_LOCAL7 },
 #endif
-    0,
+    { NULL, 0 }
 };
 
 static struct syslog_names log_sev[] = {
 #ifdef LOG_EMERG
-    "emerg", LOG_EMERG,
+    { "emerg", LOG_EMERG },
 #endif
 #ifdef LOG_ALERT
-    "alert", LOG_ALERT,
+    { "alert", LOG_ALERT },
 #endif
 #ifdef LOG_CRIT
-    "crit", LOG_CRIT,
+    { "crit", LOG_CRIT },
 #endif
 #ifdef LOG_ERR
-    "err", LOG_ERR,
+    { "err", LOG_ERR },
 #endif
 #ifdef LOG_WARNING
-    "warning", LOG_WARNING,
+    { "warning", LOG_WARNING },
 #endif
 #ifdef LOG_NOTICE
-    "notice", LOG_NOTICE,
+    { "notice", LOG_NOTICE },
 #endif
 #ifdef LOG_INFO
-    "info", LOG_INFO,
+    { "info", LOG_INFO },
 #endif
 #ifdef LOG_DEBUG
-    "debug", LOG_DEBUG,
+    { "debug", LOG_DEBUG },
 #endif
-    0,
+    { NULL, 0 }
 };
 
 /* severity_map - lookup facility or severity value */
@@ -601,7 +603,7 @@ char   *string;
     if (src[0] == 0)
 	return (0);
 
-    while (ch = *src) {
+    while ((ch = *src)) {
 	if (ch == ':') {
 	    if (*++src == 0)
 		tcpd_warn("rule ends in \":\"");
diff -up tcp_wrappers_7.6-ipv6.4/percent_m.c.warnings tcp_wrappers_7.6-ipv6.4/percent_m.c
--- tcp_wrappers_7.6-ipv6.4/percent_m.c.warnings	2003-04-16 16:12:24.000000000 +0200
+++ tcp_wrappers_7.6-ipv6.4/percent_m.c	2013-08-15 18:51:57.536244211 +0200
@@ -29,7 +29,7 @@ char   *ibuf;
     char   *bp = obuf;
     char   *cp = ibuf;
 
-    while (*bp = *cp)
+    while ((*bp = *cp))
 	if (*cp == '%' && cp[1] == 'm') {
 #ifdef USE_STRERROR
 	    strcpy(bp, strerror(errno));
diff -up tcp_wrappers_7.6-ipv6.4/percent_x.c.warnings tcp_wrappers_7.6-ipv6.4/percent_x.c
--- tcp_wrappers_7.6-ipv6.4/percent_x.c.warnings	1994-12-28 17:42:38.000000000 +0100
+++ tcp_wrappers_7.6-ipv6.4/percent_x.c	2013-08-15 18:51:57.537244215 +0200
@@ -19,6 +19,7 @@ static char sccsid[] = "@(#) percent_x.c
 #include <stdio.h>
 #include <syslog.h>
 #include <string.h>
+#include <unistd.h>
 
 extern void exit();
 
diff -up tcp_wrappers_7.6-ipv6.4/rfc931.c.warnings tcp_wrappers_7.6-ipv6.4/rfc931.c
--- tcp_wrappers_7.6-ipv6.4/rfc931.c.warnings	2013-08-15 18:51:57.484243985 +0200
+++ tcp_wrappers_7.6-ipv6.4/rfc931.c	2013-08-15 18:51:57.537244215 +0200
@@ -23,6 +23,7 @@ static char sccsid[] = "@(#) rfc931.c 1.
 #include <setjmp.h>
 #include <signal.h>
 #include <string.h>
+#include <unistd.h>
 
 /* Local stuff. */
 
@@ -81,7 +82,7 @@ char   *dest;
     char   *cp;
     char   *result = unknown;
     FILE   *fp;
-    unsigned saved_timeout;
+    unsigned saved_timeout = 0;
     struct sigaction nact, oact;
 
     /*
@@ -165,7 +166,7 @@ char   *dest;
 		     * protocol, not part of the data.
 		     */
 
-		    if (cp = strchr(user, '\r'))
+		    if ((cp = strchr(user, '\r')))
 			*cp = 0;
 		    result = user;
 		}
diff -up tcp_wrappers_7.6-ipv6.4/safe_finger.c.warnings tcp_wrappers_7.6-ipv6.4/safe_finger.c
--- tcp_wrappers_7.6-ipv6.4/safe_finger.c.warnings	2013-08-15 18:51:57.521244146 +0200
+++ tcp_wrappers_7.6-ipv6.4/safe_finger.c	2013-08-15 18:51:57.538244219 +0200
@@ -24,8 +24,13 @@ static char sccsid[] = "@(#) safe_finger
 #include <sys/stat.h>
 #include <signal.h>
 #include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/wait.h>
 #include <ctype.h>
 #include <pwd.h>
+#include <grp.h>
 
 extern void exit();
 
@@ -40,6 +45,8 @@ char    path[] = "PATH=/bin:/usr/bin:/us
 #define	UNPRIV_NAME	"nobody"	/* Preferred privilege level */
 #define	UNPRIV_UGID	32767		/* Default uid and gid */
 
+int     pipe_stdin(char  **);
+
 int     finger_pid;
 
 void    cleanup(sig)
@@ -49,6 +56,7 @@ int     sig;
     exit(0);
 }
 
+int
 main(argc, argv)
 int     argc;
 char  **argv;
@@ -65,13 +73,17 @@ char  **argv;
      */
     if (getuid() == 0 || geteuid() == 0) {
 	if ((pwd = getpwnam(UNPRIV_NAME)) && pwd->pw_uid > 0) {
-	    setgid(pwd->pw_gid);
+	    if (setgid(pwd->pw_gid) != 0)
+		    return 1;
 	    initgroups(UNPRIV_NAME, pwd->pw_gid);
-	    setuid(pwd->pw_uid);
+	    if (setuid(pwd->pw_uid))
+		    return 1;
 	} else {
-	    setgid(UNPRIV_UGID);
+	    if (setgid(UNPRIV_UGID))
+		    return 1;
 	    setgroups(0, NULL);
-	    setuid(UNPRIV_UGID);
+	    if (setuid(UNPRIV_UGID))
+		    return 1;
 	}
     }
 
diff -up tcp_wrappers_7.6-ipv6.4/scaffold.c.warnings tcp_wrappers_7.6-ipv6.4/scaffold.c
--- tcp_wrappers_7.6-ipv6.4/scaffold.c.warnings	2013-08-15 18:51:57.457243868 +0200
+++ tcp_wrappers_7.6-ipv6.4/scaffold.c	2013-08-15 18:51:57.538244219 +0200
@@ -20,6 +20,8 @@ static char sccs_id[] = "@(#) scaffold.c
 #include <syslog.h>
 #include <setjmp.h>
 #include <string.h>
+#include <unistd.h>
+#include <stdlib.h>
 
 #ifndef INADDR_NONE
 #define	INADDR_NONE	(-1)		/* XXX should be 0xffffffff */
diff -up tcp_wrappers_7.6-ipv6.4/socket.c.warnings tcp_wrappers_7.6-ipv6.4/socket.c
--- tcp_wrappers_7.6-ipv6.4/socket.c.warnings	2013-08-15 18:51:57.479243964 +0200
+++ tcp_wrappers_7.6-ipv6.4/socket.c	2013-08-15 18:52:32.346394921 +0200
@@ -21,6 +21,7 @@ static char sccsid[] = "@(#) socket.c 1.
 
 /* System libraries. */
 
+#include <arpa/inet.h>
 #include <sys/types.h>
 #include <sys/param.h>
 #include <sys/socket.h>
@@ -84,7 +85,7 @@ struct request_info *request;
 {
     static struct sockaddr_gen client;
     static struct sockaddr_gen server;
-    int     len;
+    unsigned len;
     char    buf[BUFSIZ];
     int     fd = request->fd;
 
@@ -168,7 +169,7 @@ struct request_info *request;
 	sock_methods(request);
 
 	memcpy(&client, res->ai_addr, res->ai_addrlen);
-	request->client->sin = (struct sockaddr *)&client;
+	request->client->sin = (struct sockaddr_gen *)&client;
 	freeaddrinfo(res);
 
 	request->client->name[0] = 0;
@@ -293,7 +294,7 @@ int     fd;
 {
     char    buf[BUFSIZ];
     struct sockaddr_in sin;
-    int     size = sizeof(sin);
+    unsigned size = sizeof(sin);
 
     /*
      * Eat up the not-yet received datagram. Some systems insist on a
diff -up tcp_wrappers_7.6-ipv6.4/tcpdchk.c.warnings tcp_wrappers_7.6-ipv6.4/tcpdchk.c
--- tcp_wrappers_7.6-ipv6.4/tcpdchk.c.warnings	2013-08-15 18:51:57.529244180 +0200
+++ tcp_wrappers_7.6-ipv6.4/tcpdchk.c	2013-08-15 18:51:57.540244228 +0200
@@ -30,6 +30,8 @@ static char sccsid[] = "@(#) tcpdchk.c 1
 #include <errno.h>
 #include <netdb.h>
 #include <string.h>
+#include <unistd.h>
+#include <stdlib.h>
 
 extern int errno;
 extern void exit();
@@ -199,13 +201,15 @@ struct request_info *request;
     char    sv_list[BUFLEN];		/* becomes list of daemons */
     char   *cl_list;			/* becomes list of requests */
     char   *sh_cmd;			/* becomes optional shell command */
+#ifndef PROCESS_OPTIONS
     char    buf[BUFSIZ];
+#endif
     int     verdict;
     struct tcpd_context saved_context;
 
     saved_context = tcpd_context;		/* stupid compilers */
 
-    if (fp = fopen(table, "r")) {
+    if ((fp = fopen(table, "r"))) {
 	tcpd_context.file = table;
 	tcpd_context.line = 0;
 	while (xgets(sv_list, sizeof(sv_list), fp)) {
@@ -331,7 +335,7 @@ char   *list;
 	    clients = 0;
 	} else {
 	    clients++;
-	    if (host = split_at(cp + 1, '@')) {	/* user@host */
+	    if ((host = split_at(cp + 1, '@'))) {	/* user@host */
 		check_user(cp);
 		check_host(host);
 	    } else {
@@ -449,7 +453,7 @@ char   *pat;
 	    if (err)
 		tcpd_warn("bad IP6 address specification: %s", pat);
 #endif
-    } else if (mask = split_at(pat, '/')) {	/* network/netmask */
+    } else if ((mask = split_at(pat, '/'))) {	/* network/netmask */
 	if (dot_quad_addr(pat) == INADDR_NONE
 	    || dot_quad_addr(mask) == INADDR_NONE)
 	    tcpd_warn("%s/%s: bad net/mask pattern", pat, mask);
diff -up tcp_wrappers_7.6-ipv6.4/tcpd.c.warnings tcp_wrappers_7.6-ipv6.4/tcpd.c
--- tcp_wrappers_7.6-ipv6.4/tcpd.c.warnings	2013-08-15 18:51:57.450243838 +0200
+++ tcp_wrappers_7.6-ipv6.4/tcpd.c	2013-08-15 18:51:57.540244228 +0200
@@ -24,6 +24,7 @@ static char sccsid[] = "@(#) tcpd.c 1.10
 #include <stdio.h>
 #include <syslog.h>
 #include <string.h>
+#include <unistd.h>
 
 #ifndef MAXPATHNAMELEN
 #define MAXPATHNAMELEN	BUFSIZ
@@ -38,9 +39,12 @@ static char sccsid[] = "@(#) tcpd.c 1.10
 #include "patchlevel.h"
 #include "tcpd.h"
 
+void fix_options(struct request_info *);
+
 int     allow_severity = SEVERITY;	/* run-time adjustable */
 int     deny_severity = LOG_WARNING;	/* ditto */
 
+int
 main(argc, argv)
 int     argc;
 char  **argv;
diff -up tcp_wrappers_7.6-ipv6.4/tcpdmatch.c.warnings tcp_wrappers_7.6-ipv6.4/tcpdmatch.c
--- tcp_wrappers_7.6-ipv6.4/tcpdmatch.c.warnings	2013-08-15 18:51:57.503244068 +0200
+++ tcp_wrappers_7.6-ipv6.4/tcpdmatch.c	2013-08-15 18:51:57.541244232 +0200
@@ -26,9 +26,11 @@ static char sccsid[] = "@(#) tcpdmatch.c
 #include <arpa/inet.h>
 #include <netdb.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <syslog.h>
 #include <setjmp.h>
 #include <string.h>
+#include <unistd.h>
 
 extern void exit();
 extern int optind;
diff -up tcp_wrappers_7.6-ipv6.4/try-from.c.warnings tcp_wrappers_7.6-ipv6.4/try-from.c
--- tcp_wrappers_7.6-ipv6.4/try-from.c.warnings	1994-12-28 17:42:55.000000000 +0100
+++ tcp_wrappers_7.6-ipv6.4/try-from.c	2013-08-15 18:51:57.541244232 +0200
@@ -37,6 +37,7 @@ static char sccsid[] = "@(#) try-from.c
 int     allow_severity = SEVERITY;	/* run-time adjustable */
 int     deny_severity = LOG_WARNING;	/* ditto */
 
+int
 main(argc, argv)
 int     argc;
 char  **argv;
diff -up tcp_wrappers_7.6-ipv6.4/update.c.warnings tcp_wrappers_7.6-ipv6.4/update.c
--- tcp_wrappers_7.6-ipv6.4/update.c.warnings	1999-10-27 10:44:39.000000000 +0200
+++ tcp_wrappers_7.6-ipv6.4/update.c	2013-08-15 18:51:57.541244232 +0200
@@ -22,6 +22,7 @@ static char sccsid[] = "@(#) update.c 1.
 #include <stdio.h>
 #include <syslog.h>
 #include <string.h>
+#include <unistd.h>
 
 /* Local stuff. */