svn commit: r311816 - stable/9/contrib/tcp_wrappers
Dimitry Andric
dim at FreeBSD.org
Mon Jan 9 20:14:22 UTC 2017
Author: dim
Date: Mon Jan 9 20:14:20 2017
New Revision: 311816
URL: https://svnweb.freebsd.org/changeset/base/311816
Log:
MFC r257398 (by sbruno):
Quiesce warnings by updating headerfile includes
r257404 | sbruno | 2013-10-30 23:41:18 +0100 (Wed, 30 Oct 2013) | 9 lines
Quiesce two warnings:
1. define the CODE * as const
2. restructure function to eliminate warning about exiting with no return.
severity_map() never returns when it can't find an appropriate sysylog
facility, and it longjmp()'s away into error code handling. Keep this
behavior by stashing the facility value found during our search and
checking for -1 if found.
MFC r257405 (by sbruno):
Quiesce warning, which could be a bug IMO, by correctly defining the host_info
structure name
MFC r257406 (by sbruno):
Queisce warning about undeclared function usage.
yp_get_default_domain is defined in workaround.c but is not declared
in any header file. Tie the declaration to the same #define conditional
used when the function is called, NETGROUP
MFC r272949 (by pfg):
tcpd: complete function prototypes.
This clears up at least a build issues on mysql-server
ports. While here also replace some spaces with tabs
in our headers.
PR: 42336
MFC r272950 (by pfg):
tcpd.h: add prototype for hosts_ctl
According the hosts_access(3) man page the hosts_ctl() prototype
should be in tcpd.h. For now, follow other declarations and don't
add the arguments in the prototype.
Reference:
https://www.illumos.org/issues/4385
PR: 32808
MFC r311459:
Put proper prototypes in tcpd.h
Clang 4.0.0 complains about tcpd.h's not-really-prototypes, e.g.:
/usr/include/tcpd.h:75:24: error: this function declaration is not a prototype [-Werror,-Wstrict-prototypes]
extern int hosts_access(); /* access control */
^
To fix this, turn these declarations into real prototypes. While here,
garbage collect the incompatible rfc931() function from scaffold.c, as
it is never used.
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D9052
MFC r311461:
Also remove unnecessary extern keywords from tcpd.h.
Noticed by: kib
MFC r311556:
After r311459, some ports can break, because a few of the newly added
prototypes in <tcpd.h> use FILE. Pull in a minimal forward declaration
of FILE from <stdio.h> to minimize impact. Sorry for the breakage.
Reported by: Shawn Webb <shawn.webb at hardenedbsd.org>
Modified:
stable/9/contrib/tcp_wrappers/clean_exit.c
stable/9/contrib/tcp_wrappers/hosts_access.c
stable/9/contrib/tcp_wrappers/options.c
stable/9/contrib/tcp_wrappers/percent_x.c
stable/9/contrib/tcp_wrappers/rfc931.c
stable/9/contrib/tcp_wrappers/scaffold.c
stable/9/contrib/tcp_wrappers/shell_cmd.c
stable/9/contrib/tcp_wrappers/tcpd.h
stable/9/contrib/tcp_wrappers/update.c
Directory Properties:
stable/9/ (props changed)
stable/9/contrib/ (props changed)
Modified: stable/9/contrib/tcp_wrappers/clean_exit.c
==============================================================================
--- stable/9/contrib/tcp_wrappers/clean_exit.c Mon Jan 9 20:14:18 2017 (r311815)
+++ stable/9/contrib/tcp_wrappers/clean_exit.c Mon Jan 9 20:14:20 2017 (r311816)
@@ -13,6 +13,7 @@ static char sccsid[] = "@(#) clean_exit.
#endif
#include <stdio.h>
+#include <unistd.h>
extern void exit();
Modified: stable/9/contrib/tcp_wrappers/hosts_access.c
==============================================================================
--- stable/9/contrib/tcp_wrappers/hosts_access.c Mon Jan 9 20:14:18 2017 (r311815)
+++ stable/9/contrib/tcp_wrappers/hosts_access.c Mon Jan 9 20:14:20 2017 (r311816)
@@ -44,6 +44,7 @@ static char sccsid[] = "@(#) hosts_acces
#ifdef INET6
#include <netdb.h>
#endif
+#include <stdlib.h>
extern char *fgets();
extern int errno;
@@ -102,6 +103,11 @@ static int masked_match6();
#define BUFLEN 2048
+/* definition to be used from workarounds.c */
+#ifdef NETGROUP
+int yp_get_default_domain(char **);
+#endif
+
/* hosts_access - host access control facility */
int hosts_access(request)
@@ -269,7 +275,7 @@ struct request_info *request;
static int hostfile_match(path, host)
char *path;
-struct hosts_info *host;
+struct host_info *host;
{
char tok[BUFSIZ];
int match = NO;
Modified: stable/9/contrib/tcp_wrappers/options.c
==============================================================================
--- stable/9/contrib/tcp_wrappers/options.c Mon Jan 9 20:14:18 2017 (r311815)
+++ stable/9/contrib/tcp_wrappers/options.c Mon Jan 9 20:14:20 2017 (r311816)
@@ -50,6 +50,8 @@ static char sccsid[] = "@(#) options.c 1
#include <ctype.h>
#include <setjmp.h>
#include <string.h>
+#include <unistd.h>
+#include <stdlib.h>
#ifndef MAXPATHNAMELEN
#define MAXPATHNAMELEN BUFSIZ
@@ -441,16 +443,21 @@ struct request_info *request;
/* severity_map - lookup facility or severity value */
static int severity_map(table, name)
-CODE *table;
+const CODE *table;
char *name;
{
- CODE *t;
+ const CODE *t;
+ int ret = -1;
for (t = table; t->c_name; t++)
- if (STR_EQ(t->c_name, name))
- return (t->c_val);
- tcpd_jump("bad syslog facility or severity: \"%s\"", name);
- /* NOTREACHED */
+ if (STR_EQ(t->c_name, name)) {
+ ret = t->c_val;
+ break;
+ }
+ if (ret == -1)
+ tcpd_jump("bad syslog facility or severity: \"%s\"", name);
+
+ return (ret);
}
/* severity_option - change logging severity for this event (Dave Mitchell) */
Modified: stable/9/contrib/tcp_wrappers/percent_x.c
==============================================================================
--- stable/9/contrib/tcp_wrappers/percent_x.c Mon Jan 9 20:14:18 2017 (r311815)
+++ stable/9/contrib/tcp_wrappers/percent_x.c Mon Jan 9 20:14:20 2017 (r311816)
@@ -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();
Modified: stable/9/contrib/tcp_wrappers/rfc931.c
==============================================================================
--- stable/9/contrib/tcp_wrappers/rfc931.c Mon Jan 9 20:14:18 2017 (r311815)
+++ stable/9/contrib/tcp_wrappers/rfc931.c Mon Jan 9 20:14:20 2017 (r311816)
@@ -25,6 +25,7 @@ static char sccsid[] = "@(#) rfc931.c 1.
#include <setjmp.h>
#include <signal.h>
#include <string.h>
+#include <unistd.h>
#ifndef SEEK_SET
#define SEEK_SET 0
Modified: stable/9/contrib/tcp_wrappers/scaffold.c
==============================================================================
--- stable/9/contrib/tcp_wrappers/scaffold.c Mon Jan 9 20:14:18 2017 (r311815)
+++ stable/9/contrib/tcp_wrappers/scaffold.c Mon Jan 9 20:14:20 2017 (r311816)
@@ -235,16 +235,6 @@ struct request_info *request;
exit(0);
}
-/* dummy function to intercept the real rfc931() */
-
-/* ARGSUSED */
-
-void rfc931(request)
-struct request_info *request;
-{
- strcpy(request->user, unknown);
-}
-
/* check_path - examine accessibility */
int check_path(path, st)
Modified: stable/9/contrib/tcp_wrappers/shell_cmd.c
==============================================================================
--- stable/9/contrib/tcp_wrappers/shell_cmd.c Mon Jan 9 20:14:18 2017 (r311815)
+++ stable/9/contrib/tcp_wrappers/shell_cmd.c Mon Jan 9 20:14:20 2017 (r311816)
@@ -16,10 +16,13 @@ static char sccsid[] = "@(#) shell_cmd.c
#include <sys/types.h>
#include <sys/param.h>
+#include <sys/wait.h>
#include <signal.h>
#include <stdio.h>
#include <syslog.h>
#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>
extern void exit();
Modified: stable/9/contrib/tcp_wrappers/tcpd.h
==============================================================================
--- stable/9/contrib/tcp_wrappers/tcpd.h Mon Jan 9 20:14:18 2017 (r311815)
+++ stable/9/contrib/tcp_wrappers/tcpd.h Mon Jan 9 20:14:20 2017 (r311816)
@@ -6,6 +6,17 @@
* $FreeBSD$
*/
+#ifdef INET6
+#define TCPD_SOCKADDR struct sockaddr
+#else
+#define TCPD_SOCKADDR struct sockaddr_in
+#endif
+
+#ifndef _STDFILE_DECLARED
+#define _STDFILE_DECLARED
+typedef struct __sFILE FILE;
+#endif
+
/* Structure to describe one communications endpoint. */
#define STRING_LENGTH 128 /* hosts, users, processes */
@@ -13,11 +24,7 @@
struct host_info {
char name[STRING_LENGTH]; /* access via eval_hostname(host) */
char addr[STRING_LENGTH]; /* access via eval_hostaddr(host) */
-#ifdef INET6
- struct sockaddr *sin; /* socket address or 0 */
-#else
- struct sockaddr_in *sin; /* socket address or 0 */
-#endif
+ TCPD_SOCKADDR *sin; /* socket address or 0 */
struct t_unitdata *unit; /* TLI transport address or 0 */
struct request_info *request; /* for shared information */
};
@@ -67,21 +74,22 @@ extern char paranoid[];
/* Global functions. */
#if defined(TLI) || defined(PTX) || defined(TLI_SEQUENT)
-extern void fromhost(); /* get/validate client host info */
+void fromhost(struct request_info *); /* get/validate client host info */
#else
#define fromhost sock_host /* no TLI support needed */
#endif
-extern int hosts_access(); /* access control */
-extern int hosts_ctl(); /* wrapper around request_init() */
-extern void shell_cmd(); /* execute shell command */
-extern char *percent_x(); /* do %<char> expansion */
-extern void rfc931(); /* client name from RFC 931 daemon */
-extern void clean_exit(); /* clean up and exit */
-extern void refuse(); /* clean up and exit */
-extern char *xgets(); /* fgets() on steroids */
-extern char *split_at(); /* strchr() and split */
-extern unsigned long dot_quad_addr(); /* restricted inet_addr() */
+int hosts_access(struct request_info *); /* access control */
+int hosts_ctl(char *, char *, char *, char *); /* wrapper around request_init() */
+void shell_cmd(char *); /* execute shell command */
+char *percent_x(char *, int, char *, struct request_info *); /* do %<char> expansion */
+void rfc931(TCPD_SOCKADDR *, TCPD_SOCKADDR *, char *); /* client name from RFC 931 daemon */
+void clean_exit(struct request_info *); /* clean up and exit */
+void refuse(struct request_info *); /* clean up and exit */
+char *xgets(char *, int, FILE *); /* fgets() on steroids */
+
+char *split_at(char *, int); /* strchr() and split */
+unsigned long dot_quad_addr(char *); /* restricted inet_addr() */
/* Global variables. */
@@ -98,13 +106,8 @@ extern int resident; /* > 0 if residen
* attributes. Each attribute has its own key.
*/
-#ifdef __STDC__
-extern struct request_info *request_init(struct request_info *,...);
-extern struct request_info *request_set(struct request_info *,...);
-#else
-extern struct request_info *request_init(); /* initialize request */
-extern struct request_info *request_set(); /* update request structure */
-#endif
+struct request_info *request_init(struct request_info *,...); /* initialize request */
+struct request_info *request_set(struct request_info *,...); /* update request structure */
#define RQ_FILE 1 /* file descriptor */
#define RQ_DAEMON 2 /* server process (argv[0]) */
@@ -124,27 +127,27 @@ extern struct request_info *request_set(
* host_info structures serve as caches for the lookup results.
*/
-extern char *eval_user(); /* client user */
-extern char *eval_hostname(); /* printable hostname */
-extern char *eval_hostaddr(); /* printable host address */
-extern char *eval_hostinfo(); /* host name or address */
-extern char *eval_client(); /* whatever is available */
-extern char *eval_server(); /* whatever is available */
+char *eval_user(struct request_info *); /* client user */
+char *eval_hostname(struct host_info *); /* printable hostname */
+char *eval_hostaddr(struct host_info *); /* printable host address */
+char *eval_hostinfo(struct host_info *); /* host name or address */
+char *eval_client(struct request_info *); /* whatever is available */
+char *eval_server(struct request_info *); /* whatever is available */
#define eval_daemon(r) ((r)->daemon) /* daemon process name */
#define eval_pid(r) ((r)->pid) /* process id */
/* Socket-specific methods, including DNS hostname lookups. */
-extern void sock_host(); /* look up endpoint addresses */
-extern void sock_hostname(); /* translate address to hostname */
-extern void sock_hostaddr(); /* address to printable address */
+void sock_host(struct request_info *); /* look up endpoint addresses */
+void sock_hostname(struct host_info *); /* translate address to hostname */
+void sock_hostaddr(struct host_info *); /* address to printable address */
#define sock_methods(r) \
{ (r)->hostname = sock_hostname; (r)->hostaddr = sock_hostaddr; }
/* The System V Transport-Level Interface (TLI) interface. */
#if defined(TLI) || defined(PTX) || defined(TLI_SEQUENT)
-extern void tli_host(); /* look up endpoint addresses etc. */
+void tli_host(struct request_info *); /* look up endpoint addresses etc. */
#endif
/*
@@ -153,13 +156,8 @@ extern void tli_host(); /* look up end
* everyone would have to include <setjmp.h>.
*/
-#ifdef __STDC__
-extern void tcpd_warn(char *, ...); /* report problem and proceed */
-extern void tcpd_jump(char *, ...); /* report problem and jump */
-#else
-extern void tcpd_warn();
-extern void tcpd_jump();
-#endif
+void tcpd_warn(char *, ...); /* report problem and proceed */
+void tcpd_jump(char *, ...); /* report problem and jump */
struct tcpd_context {
char *file; /* current file */
@@ -185,42 +183,42 @@ extern struct tcpd_context tcpd_context;
* behavior.
*/
-extern void process_options(); /* execute options */
-extern int dry_run; /* verification flag */
+void process_options(char *, struct request_info *); /* execute options */
+extern int dry_run; /* verification flag */
/* Bug workarounds. */
#ifdef INET_ADDR_BUG /* inet_addr() returns struct */
#define inet_addr fix_inet_addr
-extern long fix_inet_addr();
+long fix_inet_addr(char *);
#endif
#ifdef BROKEN_FGETS /* partial reads from sockets */
#define fgets fix_fgets
-extern char *fix_fgets();
+char *fix_fgets(char *, int, FILE *);
#endif
#ifdef RECVFROM_BUG /* no address family info */
#define recvfrom fix_recvfrom
-extern int fix_recvfrom();
+int fix_recvfrom(int, char *, int, int, struct sockaddr *, int *);
#endif
#ifdef GETPEERNAME_BUG /* claims success with UDP */
#define getpeername fix_getpeername
-extern int fix_getpeername();
+int fix_getpeername(int, struct sockaddr *, int *);
#endif
#ifdef SOLARIS_24_GETHOSTBYNAME_BUG /* lists addresses as aliases */
#define gethostbyname fix_gethostbyname
-extern struct hostent *fix_gethostbyname();
+struct hostent *fix_gethostbyname(char *);
#endif
#ifdef USE_STRSEP /* libc calls strtok() */
#define strtok fix_strtok
-extern char *fix_strtok();
+char *fix_strtok(char *, char *);
#endif
#ifdef LIBC_CALLS_STRTOK /* libc calls strtok() */
#define strtok my_strtok
-extern char *my_strtok();
+char *my_strtok(char *, char *);
#endif
Modified: stable/9/contrib/tcp_wrappers/update.c
==============================================================================
--- stable/9/contrib/tcp_wrappers/update.c Mon Jan 9 20:14:18 2017 (r311815)
+++ stable/9/contrib/tcp_wrappers/update.c Mon Jan 9 20:14:20 2017 (r311816)
@@ -24,6 +24,7 @@ static char sccsid[] = "@(#) update.c 1.
#include <stdio.h>
#include <syslog.h>
#include <string.h>
+#include <unistd.h>
/* Local stuff. */
More information about the svn-src-all
mailing list