From 2c2c68bc80e755ec6bd7d42549aecd4759dce95b Mon Sep 17 00:00:00 2001 From: Jay Larson Date: Sun, 27 May 2018 07:33:25 -0500 Subject: [PATCH] First check in --- Makefile | 141 ++++ SNAP/README | 5 + SRC/patches/01_removed-malloc.patch | 12 + SRC/patches/02_bigpatch.patch | 1035 +++++++++++++++++++++++++++ SRC/patches/README | 3 + SRC/tcp_wrappers_7.6.tar.gz | Bin 0 -> 99438 bytes SRC/tcp_wrappers_7.6.tar.gz.sig | Bin 0 -> 152 bytes 7 files changed, 1196 insertions(+) create mode 100644 Makefile create mode 100644 SNAP/README create mode 100644 SRC/patches/01_removed-malloc.patch create mode 100644 SRC/patches/02_bigpatch.patch create mode 100644 SRC/patches/README create mode 100644 SRC/tcp_wrappers_7.6.tar.gz create mode 100644 SRC/tcp_wrappers_7.6.tar.gz.sig diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4ca790c --- /dev/null +++ b/Makefile @@ -0,0 +1,141 @@ +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation here: +# (http://www.gnu.org/licenses/gpl-2.0.html) +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# Some, but not all of variables are required. The following list +# describes the required variables: +# +# * URL: The main website of the upstream project +# * REPO: The location of the package on the source pacakge +# server. This might be one of core, main, dev, or +# perhaps others. +# * BRIEF: Short description, should be 50 chars or less +# * SNAPVER: This is the package version. When a package is +# changed, but no changes are made to the source code +# this value should be increased. This would include +# things like usher being modified, changes to default +# configuration files, file permissions, etc. +# * ARCHIVE: The default commands that set this variable should +# work in most cases, but in some cases it may need +# to be modified. This variable should contain the +# path to the source of the package (./SRC/filename) +# * TYPE: This is probably not really needed due to the +# ability of gnu tar to figure it out on its own. +# Should probably be removed at some point. +# * SRCDIR: This is the name of the source directory after the +# package source is extracted. The default command +# should in most cases set this automatically. +# * PATCHDIR: This directory should be ./SRC/patches and is +# required, whether or not patches are used. +# * VERSION: This should be set automatically based on the +# version string in the source directory and SNAPVER. +# The default command here should work in many cases, +# but certain packages may need to use a different +# method. +# +# Variables that aren't required: +# +# * ARCH: This should be populated for packages which contain +# compiled binaries. If it is not populated the ARCH +# will be set to 'noarch'. +# * DEPENDS: If any other packages are required for this package +# to function then they need to be listed here, +# preferably in alphabetical order. +# * BUILDDEPS: Any package beyond packages from the core repo +# need to be listed here. The idea is that we +# can automate building and testing packages +# from clean core systems. The core repo is +# intended to include only the base minimum +# packages which provide a functional system. +# * SRCPKG: By default this is populated automatically with +# the name of the package (current directory). If +# the source package is used to generate multiple +# packages then this variable should contain the +# name of the git repo that tracks the source. +# * DESC: This is to be used to provide a longer description +# of the package. + +export SHELL = /bin/bash +ARCH = x86_64 +DEPENDS = +BUILDDEPS = +SRCPKG = +URL = ftp://ftp.porcupine.org/pub/security/index.html +REPO = server +BRIEF = Filter incoming network requests +DESC = With this package you can monitor and filter incoming requests for \ +the SYSTAT, FINGER, FTP, TELNET, RLOGIN, RSH, EXEC, TFTP, TALK, and other \ +network services. +SNAPVER = 0 + +ARCHIVE := $(PWD)/SRC/$(shell ls SRC|egrep '(bz2|gz|tar|xz)$$'|tail -1) +TYPE := $(shell file -ib $(ARCHIVE)|cut -d';' -f1|tr -d '\n') +SRCDIR := $(shell tar -tf $(ARCHIVE)|head -1|sed 's/\/.*//') +PATCHDIR := $(PWD)/SRC/patches +VERSION := $(shell echo $(SRCDIR)|egrep -o '\_[0-9].*'|sed 's/^_//')-$(SNAPVER) + +include /usr/share/snap/Makefile.snaplinux + +$(SRCDIR)/Makefile: $(ARCHIVE) + @if [ '$(TYPE)' == 'application/x-bzip2' ]; then \ + tar -jxf $(ARCHIVE); \ + elif [ '$(TYPE)' == 'application/x-gzip' ]; then \ + tar -zxf $(ARCHIVE); \ + elif [ '$(TYPE)' == 'application/x-tar' ]; then \ + tar -xf $(ARCHIVE); \ + elif [ '$(TYPE)' == 'application/x-xz' ]; then \ + tar -xf $(ARCHIVE); \ + else \ + echo 'Unable to determine archive type'; \ + exit 1; \ + fi + @touch $(SRCDIR)/Makefile + +# binfile should be replaced with a file generated by the +# make process. It won't really break anything if not +# set to a valid file, but the source make process will +# be re-executed even if it isn't necessary + +$(SRCDIR)/tcpd: $(SRCDIR)/Makefile + @cd $(SRCDIR) && \ + for patch in `find $(PATCHDIR) -name \*.patch|sort`; do \ + patch --verbose -Np1 -i $$patch; \ + done + @cd $(SRCDIR) && echo HELLO && make REAL_DAEMON_DIR=/usr/sbin \ + STYLE=-DPROCESS_OPTIONS linux + +$(ROOT): $(SRCDIR)/tcpd + @if [ -d $(ROOT) ]; then \ + touch $(ROOT); \ + else \ + mkdir -v $(ROOT); \ + fi + + @install -d -m 0755 $(ROOT)/usr && \ + install -d -m 0755 $(ROOT)/usr/include && \ + install -d -m 0755 $(ROOT)/usr/lib && \ + install -d -m 0755 $(ROOT)/usr/sbin && \ + install -d -m -755 $(ROOT)/usr/share && \ + install -d -m -755 $(ROOT)/usr/share/man && \ + install -d -m -755 $(ROOT)/usr/share/man/man3 && \ + install -d -m -755 $(ROOT)/usr/share/man/man5 && \ + install -d -m -755 $(ROOT)/usr/share/man/man8 && \ + cd $(SRCDIR) && make install DESTDIR=$(ROOT) + +test: $(ROOT) + @cd $(SRCDIR); \ + make check + +clean: + @rm -rvf $(ROOT) \ + $(SNAPINFO) \ + $(MANIFEST) \ + $(FILES) \ + $(SRCDIR) + diff --git a/SNAP/README b/SNAP/README new file mode 100644 index 0000000..cb756b1 --- /dev/null +++ b/SNAP/README @@ -0,0 +1,5 @@ +This is the directory where the manifest, snapinfo, +and files.tar.gz files will be created. It is also +where the usher file should be placed if it is +required by the package. Any other files that need +to be included could also be placed here. diff --git a/SRC/patches/01_removed-malloc.patch b/SRC/patches/01_removed-malloc.patch new file mode 100644 index 0000000..3d7d195 --- /dev/null +++ b/SRC/patches/01_removed-malloc.patch @@ -0,0 +1,12 @@ +diff -Naur a/scaffold.c b/scaffold.c +--- a/scaffold.c 1997-03-21 12:27:24.000000000 -0600 ++++ b/scaffold.c 2018-05-27 07:19:17.211524884 -0500 +@@ -25,8 +25,6 @@ + #define INADDR_NONE (-1) /* XXX should be 0xffffffff */ + #endif + +-extern char *malloc(); +- + /* Application-specific. */ + + #include "tcpd.h" diff --git a/SRC/patches/02_bigpatch.patch b/SRC/patches/02_bigpatch.patch new file mode 100644 index 0000000..9a5b20c --- /dev/null +++ b/SRC/patches/02_bigpatch.patch @@ -0,0 +1,1035 @@ +Submitted By: Tushar Teredesai +Date: 2003-10-04 +Initial Package Version: 7.6 +Origin: http://archives.linuxfromscratch.org/mail-archives/blfs-dev/2003-January/001960.html +Description: The patch was created from the tcp_wrappers modified package by Mark Heerdink. +This patch provides the following improvements: + * Install libwrap.so along with libwrap.a. + * Create an install target for tcp_wrappers. + * Compilation and security fixes. + * Documentation fixes. +diff -Naur tcp_wrappers_7.6/Makefile tcp_wrappers_7.6.gimli/Makefile +--- tcp_wrappers_7.6/Makefile 1997-03-21 12:27:21.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/Makefile 2002-07-15 16:07:21.000000000 -0500 +@@ -1,5 +1,10 @@ ++GLIBC=$(shell grep -s -c __GLIBC__ /usr/include/features.h) ++ + # @(#) Makefile 1.23 97/03/21 19:27:20 + ++# unset the HOSTNAME environment variable ++HOSTNAME = ++ + what: + @echo + @echo "Usage: edit the REAL_DAEMON_DIR definition in the Makefile then:" +@@ -19,7 +24,7 @@ + @echo " generic (most bsd-ish systems with sys5 compatibility)" + @echo " 386bsd aix alpha apollo bsdos convex-ultranet dell-gcc dgux dgux543" + @echo " dynix epix esix freebsd hpux irix4 irix5 irix6 isc iunix" +- @echo " linux machten mips(untested) ncrsvr4 netbsd next osf power_unix_211" ++ @echo " linux gnu machten mips(untested) ncrsvr4 netbsd next osf power_unix_211" + @echo " ptx-2.x ptx-generic pyramid sco sco-nis sco-od2 sco-os5 sinix sunos4" + @echo " sunos40 sunos5 sysv4 tandem ultrix unicos7 unicos8 unixware1 unixware2" + @echo " uts215 uxp" +@@ -43,8 +48,8 @@ + # Ultrix 4.x SunOS 4.x ConvexOS 10.x Dynix/ptx + #REAL_DAEMON_DIR=/usr/etc + # +-# SysV.4 Solaris 2.x OSF AIX +-#REAL_DAEMON_DIR=/usr/sbin ++# SysV.4 Solaris 2.x OSF AIX Linux ++REAL_DAEMON_DIR=/usr/sbin + # + # BSD 4.4 + #REAL_DAEMON_DIR=/usr/libexec +@@ -141,10 +146,21 @@ + LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ= NETGROUP= TLI= \ + EXTRA_CFLAGS=-DSYS_ERRLIST_DEFINED VSYSLOG= all + ++ifneq ($(GLIBC),0) ++MYLIB=-lnsl ++endif ++ + linux: + @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ +- LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o \ +- NETGROUP= TLI= EXTRA_CFLAGS="-DBROKEN_SO_LINGER" all ++ LIBS=$(MYLIB) RANLIB=ranlib ARFLAGS=rv AUX_OBJ=weak_symbols.o \ ++ NETGROUP=-DNETGROUP TLI= VSYSLOG= BUGS= all \ ++ EXTRA_CFLAGS="-DSYS_ERRLIST_DEFINED -DHAVE_WEAKSYMS -D_REENTRANT" ++ ++gnu: ++ @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ ++ LIBS=$(MYLIB) RANLIB=ranlib ARFLAGS=rv AUX_OBJ=weak_symbols.o \ ++ NETGROUP=-DNETGROUP TLI= VSYSLOG= BUGS= all \ ++ EXTRA_CFLAGS="-DHAVE_STRERROR -DHAVE_WEAKSYMS -D_REENTRANT" + + # This is good for many SYSV+BSD hybrids with NIS, probably also for HP-UX 7.x. + hpux hpux8 hpux9 hpux10: +@@ -391,7 +407,7 @@ + # the ones provided with this source distribution. The environ.c module + # implements setenv(), getenv(), and putenv(). + +-AUX_OBJ= setenv.o ++#AUX_OBJ= setenv.o + #AUX_OBJ= environ.o + #AUX_OBJ= environ.o strcasecmp.o + +@@ -454,7 +470,8 @@ + # host name aliases. Compile with -DSOLARIS_24_GETHOSTBYNAME_BUG to work + # around this. The workaround does no harm on other Solaris versions. + +-BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DLIBC_CALLS_STRTOK ++BUGS = ++#BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DLIBC_CALLS_STRTOK + #BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DINET_ADDR_BUG + #BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DSOLARIS_24_GETHOSTBYNAME_BUG + +@@ -464,7 +481,7 @@ + # If your system supports NIS or YP-style netgroups, enable the following + # macro definition. Netgroups are used only for host access control. + # +-#NETGROUP= -DNETGROUP ++NETGROUP= -DNETGROUP + + ############################################################### + # System dependencies: whether or not your system has vsyslog() +@@ -491,7 +508,7 @@ + # Uncomment the next definition to turn on the language extensions + # (examples: allow, deny, banners, twist and spawn). + # +-#STYLE = -DPROCESS_OPTIONS # Enable language extensions. ++STYLE = -DPROCESS_OPTIONS # Enable language extensions. + + ################################################################ + # Optional: Changing the default disposition of logfile records +@@ -514,7 +531,7 @@ + # + # The LOG_XXX names below are taken from the /usr/include/syslog.h file. + +-FACILITY= LOG_MAIL # LOG_MAIL is what most sendmail daemons use ++FACILITY= LOG_DAEMON # LOG_MAIL is what most sendmail daemons use + + # The syslog priority at which successful connections are logged. + +@@ -610,7 +627,7 @@ + # Paranoid mode implies hostname lookup. In order to disable hostname + # lookups altogether, see the next section. + +-PARANOID= -DPARANOID ++#PARANOID= -DPARANOID + + ######################################## + # Optional: turning off hostname lookups +@@ -623,7 +640,7 @@ + # In order to perform selective hostname lookups, disable paranoid + # mode (see previous section) and comment out the following definition. + +-HOSTNAME= -DALWAYS_HOSTNAME ++#HOSTNAME= -DALWAYS_HOSTNAME + + ############################################# + # Optional: Turning on host ADDRESS checking +@@ -649,28 +666,46 @@ + # source-routed traffic in the kernel. Examples: 4.4BSD derivatives, + # Solaris 2.x, and Linux. See your system documentation for details. + # +-# KILL_OPT= -DKILL_IP_OPTIONS ++KILL_OPT= -DKILL_IP_OPTIONS + + ## End configuration options + ############################ + + # Protection against weird shells or weird make programs. + ++CC = gcc + SHELL = /bin/sh +-.c.o:; $(CC) $(CFLAGS) -c $*.c ++.c.o:; $(CC) $(CFLAGS) -o $*.o -c $*.c ++ ++SOMAJOR = 0 ++SOMINOR = 7.6 ++ ++LIB = libwrap.a ++SHLIB = shared/libwrap.so.$(SOMAJOR).$(SOMINOR) ++SHLIBSOMAJ= shared/libwrap.so.$(SOMAJOR) ++SHLIBSO = shared/libwrap.so ++SHLIBFLAGS = -Lshared -lwrap + +-CFLAGS = -O -DFACILITY=$(FACILITY) $(ACCESS) $(PARANOID) $(NETGROUP) \ ++shared/%.o: %.c ++ $(CC) $(CFLAGS) $(SHCFLAGS) -c $< -o $@ ++ ++CFLAGS = -O2 -DFACILITY=$(FACILITY) $(ACCESS) $(PARANOID) $(NETGROUP) \ + $(BUGS) $(SYSTYPE) $(AUTH) $(UMASK) \ + -DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" $(STYLE) $(KILL_OPT) \ + -DSEVERITY=$(SEVERITY) -DRFC931_TIMEOUT=$(RFC931_TIMEOUT) \ + $(UCHAR) $(TABLES) $(STRINGS) $(TLI) $(EXTRA_CFLAGS) $(DOT) \ + $(VSYSLOG) $(HOSTNAME) + ++SHLINKFLAGS = -shared -Xlinker -soname -Xlinker libwrap.so.$(SOMAJOR) -lc $(LIBS) ++SHCFLAGS = -fPIC -shared -D_REENTRANT ++ + LIB_OBJ= hosts_access.o options.o shell_cmd.o rfc931.o eval.o \ + hosts_ctl.o refuse.o percent_x.o clean_exit.o $(AUX_OBJ) \ + $(FROM_OBJ) fix_options.o socket.o tli.o workarounds.o \ + update.o misc.o diag.o percent_m.o myvsyslog.o + ++SHLIB_OBJ= $(addprefix shared/, $(LIB_OBJ)); ++ + FROM_OBJ= fromhost.o + + KIT = README miscd.c tcpd.c fromhost.c hosts_access.c shell_cmd.c \ +@@ -684,46 +719,80 @@ + refuse.c tcpdchk.8 setenv.c inetcf.c inetcf.h scaffold.c \ + scaffold.h tcpdmatch.8 README.NIS + +-LIB = libwrap.a +- +-all other: config-check tcpd tcpdmatch try-from safe_finger tcpdchk ++all other: config-check tcpd tcpdmatch try-from safe_finger tcpdchk $(LIB) + + # Invalidate all object files when the compiler options (CFLAGS) have changed. + + config-check: + @set +e; test -n "$(REAL_DAEMON_DIR)" || { make; exit 1; } +- @set +e; echo $(CFLAGS) >/tmp/cflags.$$$$ ; \ +- if cmp cflags /tmp/cflags.$$$$ ; \ +- then rm /tmp/cflags.$$$$ ; \ +- else mv /tmp/cflags.$$$$ cflags ; \ ++ @set +e; echo $(CFLAGS) >cflags.new ; \ ++ if cmp cflags cflags.new ; \ ++ then rm cflags.new ; \ ++ else mv cflags.new cflags ; \ + fi >/dev/null 2>/dev/null ++ @if [ ! -d shared ]; then mkdir shared; fi + + $(LIB): $(LIB_OBJ) + rm -f $(LIB) + $(AR) $(ARFLAGS) $(LIB) $(LIB_OBJ) + -$(RANLIB) $(LIB) + +-tcpd: tcpd.o $(LIB) +- $(CC) $(CFLAGS) -o $@ tcpd.o $(LIB) $(LIBS) ++$(SHLIB): $(SHLIB_OBJ) ++ rm -f $(SHLIB) ++ $(CC) -o $(SHLIB) $(SHLINKFLAGS) $(SHLIB_OBJ) ++ ln -s $(notdir $(SHLIB)) $(SHLIBSOMAJ) ++ ln -s $(notdir $(SHLIBSOMAJ)) $(SHLIBSO) ++ ++tcpd: tcpd.o $(SHLIB) ++ $(CC) $(CFLAGS) -o $@ tcpd.o $(SHLIBFLAGS) + +-miscd: miscd.o $(LIB) +- $(CC) $(CFLAGS) -o $@ miscd.o $(LIB) $(LIBS) ++miscd: miscd.o $(SHLIB) ++ $(CC) $(CFLAGS) -o $@ miscd.o $(SHLIBFLAGS) + +-safe_finger: safe_finger.o $(LIB) +- $(CC) $(CFLAGS) -o $@ safe_finger.o $(LIB) $(LIBS) ++safe_finger: safe_finger.o $(SHLIB) ++ $(CC) $(CFLAGS) -o $@ safe_finger.o $(SHLIBFLAGS) + + TCPDMATCH_OBJ = tcpdmatch.o fakelog.o inetcf.o scaffold.o + +-tcpdmatch: $(TCPDMATCH_OBJ) $(LIB) +- $(CC) $(CFLAGS) -o $@ $(TCPDMATCH_OBJ) $(LIB) $(LIBS) ++tcpdmatch: $(TCPDMATCH_OBJ) $(SHLIB) ++ $(CC) $(CFLAGS) -o $@ $(TCPDMATCH_OBJ) $(SHLIBFLAGS) + +-try-from: try-from.o fakelog.o $(LIB) +- $(CC) $(CFLAGS) -o $@ try-from.o fakelog.o $(LIB) $(LIBS) ++try-from: try-from.o fakelog.o $(SHLIB) ++ $(CC) $(CFLAGS) -o $@ try-from.o fakelog.o $(SHLIBFLAGS) + + TCPDCHK_OBJ = tcpdchk.o fakelog.o inetcf.o scaffold.o + +-tcpdchk: $(TCPDCHK_OBJ) $(LIB) +- $(CC) $(CFLAGS) -o $@ $(TCPDCHK_OBJ) $(LIB) $(LIBS) ++tcpdchk: $(TCPDCHK_OBJ) $(SHLIB) ++ $(CC) $(CFLAGS) -o $@ $(TCPDCHK_OBJ) $(SHLIBFLAGS) ++ ++install: install-lib install-bin install-dev ++ ++install-lib: ++ install -o root -g root -m 0755 $(SHLIB) ${DESTDIR}/usr/lib/ ++ ln -sf $(notdir $(SHLIB)) ${DESTDIR}/usr/lib/$(notdir $(SHLIBSOMAJ)) ++ ln -sf $(notdir $(SHLIBSOMAJ)) ${DESTDIR}/usr/lib/$(notdir $(SHLIBSO)) ++ ++install-bin: ++ install -o root -g root -m 0755 tcpd ${DESTDIR}/usr/sbin/ ++ install -o root -g root -m 0755 tcpdchk ${DESTDIR}/usr/sbin/ ++ install -o root -g root -m 0755 tcpdmatch ${DESTDIR}/usr/sbin/ ++ install -o root -g root -m 0755 try-from ${DESTDIR}/usr/sbin/ ++ install -o root -g root -m 0755 safe_finger ${DESTDIR}/usr/sbin/ ++ install -o root -g root -m 0644 tcpd.8 ${DESTDIR}/usr/share/man/man8/ ++ install -o root -g root -m 0644 tcpdchk.8 ${DESTDIR}/usr/share/man/man8/ ++ install -o root -g root -m 0644 try-from.8 ${DESTDIR}/usr/share/man/man8/ ++ install -o root -g root -m 0644 tcpdmatch.8 ${DESTDIR}/usr/share/man/man8/ ++ install -o root -g root -m 0644 safe_finger.8 ${DESTDIR}/usr/share/man/man8/ ++ install -o root -g root -m 0644 hosts_access.5 ${DESTDIR}/usr/share/man/man5/ ++ install -o root -g root -m 0644 hosts_options.5 ${DESTDIR}/usr/share/man/man5/ ++ ++install-dev: ++ install -o root -g root -m 0644 hosts_access.3 ${DESTDIR}/usr/share/man/man3/ ++ install -o root -g root -m 0644 tcpd.h ${DESTDIR}/usr/include/ ++ install -o root -g root -m 0644 $(LIB) ${DESTDIR}/usr/lib/ ++ ln -sf hosts_access.3 ${DESTDIR}/usr/share/man/man3/hosts_ctl.3 ++ ln -sf hosts_access.3 ${DESTDIR}/usr/share/man/man3/request_init.3 ++ ln -sf hosts_access.3 ${DESTDIR}/usr/share/man/man3/request_set.3 + + shar: $(KIT) + @shar $(KIT) +@@ -739,7 +808,8 @@ + + clean: + rm -f tcpd miscd safe_finger tcpdmatch tcpdchk try-from *.[oa] core \ +- cflags ++ cflags libwrap*.so* ++ rm -rf shared + + tidy: clean + chmod -R a+r . +@@ -885,5 +955,6 @@ + update.o: mystdarg.h + update.o: tcpd.h + vfprintf.o: cflags ++weak_symbols.o: tcpd.h + workarounds.o: cflags + workarounds.o: tcpd.h +diff -Naur tcp_wrappers_7.6/fix_options.c tcp_wrappers_7.6.gimli/fix_options.c +--- tcp_wrappers_7.6/fix_options.c 1997-04-07 19:29:19.000000000 -0500 ++++ tcp_wrappers_7.6.gimli/fix_options.c 2002-01-07 08:50:19.000000000 -0600 +@@ -35,7 +35,12 @@ + #ifdef IP_OPTIONS + unsigned char optbuf[BUFFER_SIZE / 3], *cp; + char lbuf[BUFFER_SIZE], *lp; ++#if !defined(__GLIBC__) + int optsize = sizeof(optbuf), ipproto; ++#else /* __GLIBC__ */ ++ size_t optsize = sizeof(optbuf); ++ int ipproto; ++#endif /* __GLIBC__ */ + struct protoent *ip; + int fd = request->fd; + unsigned int opt; +diff -Naur tcp_wrappers_7.6/hosts_access.3 tcp_wrappers_7.6.gimli/hosts_access.3 +--- tcp_wrappers_7.6/hosts_access.3 1996-02-11 10:01:27.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/hosts_access.3 2002-01-07 08:50:19.000000000 -0600 +@@ -3,7 +3,7 @@ + hosts_access, hosts_ctl, request_init, request_set \- access control library + .SH SYNOPSIS + .nf +-#include "tcpd.h" ++#include + + extern int allow_severity; + extern int deny_severity; +diff -Naur tcp_wrappers_7.6/hosts_access.5 tcp_wrappers_7.6.gimli/hosts_access.5 +--- tcp_wrappers_7.6/hosts_access.5 1995-01-30 12:51:47.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/hosts_access.5 2002-01-07 08:50:19.000000000 -0600 +@@ -8,9 +8,9 @@ + impatient reader is encouraged to skip to the EXAMPLES section for a + quick introduction. + .PP +-An extended version of the access control language is described in the +-\fIhosts_options\fR(5) document. The extensions are turned on at +-program build time by building with -DPROCESS_OPTIONS. ++The extended version of the access control language is described in the ++\fIhosts_options\fR(5) document. \fBNote that this language supersedes ++the meaning of \fIshell_command\fB as documented below.\fR + .PP + In the following text, \fIdaemon\fR is the the process name of a + network daemon process, and \fIclient\fR is the name and/or address of +@@ -40,7 +40,7 @@ + character. This permits you to break up long lines so that they are + easier to edit. + .IP \(bu +-Blank lines or lines that begin with a `#\' character are ignored. ++Blank lines or lines that begin with a `#' character are ignored. + This permits you to insert comments and whitespace so that the tables + are easier to read. + .IP \(bu +@@ -69,26 +69,33 @@ + .SH PATTERNS + The access control language implements the following patterns: + .IP \(bu +-A string that begins with a `.\' character. A host name is matched if ++A string that begins with a `.' character. A host name is matched if + the last components of its name match the specified pattern. For +-example, the pattern `.tue.nl\' matches the host name +-`wzv.win.tue.nl\'. ++example, the pattern `.tue.nl' matches the host name ++`wzv.win.tue.nl'. + .IP \(bu +-A string that ends with a `.\' character. A host address is matched if ++A string that ends with a `.' character. A host address is matched if + its first numeric fields match the given string. For example, the +-pattern `131.155.\' matches the address of (almost) every host on the ++pattern `131.155.' matches the address of (almost) every host on the + Eind\%hoven University network (131.155.x.x). + .IP \(bu +-A string that begins with an `@\' character is treated as an NIS ++A string that begins with an `@' character is treated as an NIS + (formerly YP) netgroup name. A host name is matched if it is a host + member of the specified netgroup. Netgroup matches are not supported + for daemon process names or for client user names. + .IP \(bu +-An expression of the form `n.n.n.n/m.m.m.m\' is interpreted as a +-`net/mask\' pair. A host address is matched if `net\' is equal to the +-bitwise AND of the address and the `mask\'. For example, the net/mask +-pattern `131.155.72.0/255.255.254.0\' matches every address in the +-range `131.155.72.0\' through `131.155.73.255\'. ++An expression of the form `n.n.n.n/m.m.m.m' is interpreted as a ++`net/mask' pair. A host address is matched if `net' is equal to the ++bitwise AND of the address and the `mask'. For example, the net/mask ++pattern `131.155.72.0/255.255.254.0' matches every address in the ++range `131.155.72.0' through `131.155.73.255'. ++.IP \(bu ++A string that begins with a `/' character is treated as a file ++name. A host name or address is matched if it matches any host name ++or address pattern listed in the named file. The file format is ++zero or more lines with zero or more host name or address patterns ++separated by whitespace. A file name pattern can be used anywhere ++a host name or address pattern can be used. + .SH WILDCARDS + The access control language supports explicit wildcards: + .IP ALL +@@ -115,19 +122,19 @@ + .ne 6 + .SH OPERATORS + .IP EXCEPT +-Intended use is of the form: `list_1 EXCEPT list_2\'; this construct ++Intended use is of the form: `list_1 EXCEPT list_2'; this construct + matches anything that matches \fIlist_1\fR unless it matches + \fIlist_2\fR. The EXCEPT operator can be used in daemon_lists and in + client_lists. The EXCEPT operator can be nested: if the control +-language would permit the use of parentheses, `a EXCEPT b EXCEPT c\' +-would parse as `(a EXCEPT (b EXCEPT c))\'. ++language would permit the use of parentheses, `a EXCEPT b EXCEPT c' ++would parse as `(a EXCEPT (b EXCEPT c))'. + .br + .ne 6 + .SH SHELL COMMANDS + If the first-matched access control rule contains a shell command, that + command is subjected to % substitutions (see next section). + The result is executed by a \fI/bin/sh\fR child process with standard +-input, output and error connected to \fI/dev/null\fR. Specify an `&\' ++input, output and error connected to \fI/dev/null\fR. Specify an `&' + at the end of the command if you do not want to wait until it has + completed. + .PP +@@ -159,7 +166,7 @@ + .IP %u + The client user name (or "unknown"). + .IP %% +-Expands to a single `%\' character. ++Expands to a single `%' character. + .PP + Characters in % expansions that may confuse the shell are replaced by + underscores. +@@ -243,9 +250,9 @@ + less trustworthy. It is possible for an intruder to spoof both the + client connection and the IDENT lookup, although doing so is much + harder than spoofing just a client connection. It may also be that +-the client\'s IDENT server is lying. ++the client's IDENT server is lying. + .PP +-Note: IDENT lookups don\'t work with UDP services. ++Note: IDENT lookups don't work with UDP services. + .SH EXAMPLES + The language is flexible enough that different types of access control + policy can be expressed with a minimum of fuss. Although the language +@@ -285,7 +292,7 @@ + .br + ALL: .foobar.edu EXCEPT terminalserver.foobar.edu + .PP +-The first rule permits access from hosts in the local domain (no `.\' ++The first rule permits access from hosts in the local domain (no `.' + in the host name) and from members of the \fIsome_netgroup\fP + netgroup. The second rule permits access from all hosts in the + \fIfoobar.edu\fP domain (notice the leading dot), with the exception of +@@ -322,8 +329,8 @@ + /etc/hosts.deny: + .in +3 + .nf +-in.tftpd: ALL: (/some/where/safe_finger -l @%h | \\ +- /usr/ucb/mail -s %d-%h root) & ++in.tftpd: ALL: (/usr/sbin/safe_finger -l @%h | \\ ++ /usr/bin/mail -s %d-%h root) & + .fi + .PP + The safe_finger command comes with the tcpd wrapper and should be +@@ -349,7 +356,7 @@ + capacity of an internal buffer; when an access control rule is not + terminated by a newline character; when the result of % + expansion would overflow an internal buffer; when a system call fails +-that shouldn\'t. All problems are reported via the syslog daemon. ++that shouldn't. All problems are reported via the syslog daemon. + .SH FILES + .na + .nf +diff -Naur tcp_wrappers_7.6/hosts_access.c tcp_wrappers_7.6.gimli/hosts_access.c +--- tcp_wrappers_7.6/hosts_access.c 1997-02-11 19:13:23.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/hosts_access.c 2002-01-07 08:50:19.000000000 -0600 +@@ -240,6 +240,26 @@ + } + } + ++/* hostfile_match - look up host patterns from file */ ++ ++static int hostfile_match(path, host) ++char *path; ++struct hosts_info *host; ++{ ++ char tok[BUFSIZ]; ++ int match = NO; ++ FILE *fp; ++ ++ if ((fp = fopen(path, "r")) != 0) { ++ while (fscanf(fp, "%s", tok) == 1 && !(match = host_match(tok, host))) ++ /* void */ ; ++ fclose(fp); ++ } else if (errno != ENOENT) { ++ tcpd_warn("open %s: %m", path); ++ } ++ return (match); ++} ++ + /* host_match - match host name and/or address against pattern */ + + static int host_match(tok, host) +@@ -267,6 +287,8 @@ + tcpd_warn("netgroup support is disabled"); /* not tcpd_jump() */ + return (NO); + #endif ++ } else if (tok[0] == '/') { /* /file hack */ ++ return (hostfile_match(tok, host)); + } else if (STR_EQ(tok, "KNOWN")) { /* check address and name */ + char *name = eval_hostname(host); + return (STR_NE(eval_hostaddr(host), unknown) && HOSTNAME_KNOWN(name)); +diff -Naur tcp_wrappers_7.6/hosts_options.5 tcp_wrappers_7.6.gimli/hosts_options.5 +--- tcp_wrappers_7.6/hosts_options.5 1994-12-28 10:42:29.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/hosts_options.5 2002-01-07 08:50:19.000000000 -0600 +@@ -58,12 +58,12 @@ + Execute, in a child process, the specified shell command, after + performing the % expansions described in the hosts_access(5) + manual page. The command is executed with stdin, stdout and stderr +-connected to the null device, so that it won\'t mess up the ++connected to the null device, so that it won't mess up the + conversation with the client host. Example: + .sp + .nf + .ti +3 +-spawn (/some/where/safe_finger -l @%h | /usr/ucb/mail root) & ++spawn (/usr/sbin/safe_finger -l @%h | /usr/bin/mail root) & + .fi + .sp + executes, in a background child process, the shell command "safe_finger +diff -Naur tcp_wrappers_7.6/options.c tcp_wrappers_7.6.gimli/options.c +--- tcp_wrappers_7.6/options.c 1996-02-11 10:01:32.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/options.c 2002-01-07 08:50:19.000000000 -0600 +@@ -473,6 +473,9 @@ + #ifdef LOG_CRON + "cron", LOG_CRON, + #endif ++#ifdef LOG_FTP ++ "ftp", LOG_FTP, ++#endif + #ifdef LOG_LOCAL0 + "local0", LOG_LOCAL0, + #endif +diff -Naur tcp_wrappers_7.6/percent_m.c tcp_wrappers_7.6.gimli/percent_m.c +--- tcp_wrappers_7.6/percent_m.c 1994-12-28 10:42:37.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/percent_m.c 2002-01-07 08:50:19.000000000 -0600 +@@ -13,7 +13,7 @@ + #include + + extern int errno; +-#ifndef SYS_ERRLIST_DEFINED ++#if !defined(SYS_ERRLIST_DEFINED) && !defined(HAVE_STRERROR) + extern char *sys_errlist[]; + extern int sys_nerr; + #endif +@@ -29,11 +29,15 @@ + + while (*bp = *cp) + if (*cp == '%' && cp[1] == 'm') { ++#ifdef HAVE_STRERROR ++ strcpy(bp, strerror(errno)); ++#else + if (errno < sys_nerr && errno > 0) { + strcpy(bp, sys_errlist[errno]); + } else { + sprintf(bp, "Unknown error %d", errno); + } ++#endif + bp += strlen(bp); + cp += 2; + } else { +diff -Naur tcp_wrappers_7.6/rfc931.c tcp_wrappers_7.6.gimli/rfc931.c +--- tcp_wrappers_7.6/rfc931.c 1995-01-02 09:11:34.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/rfc931.c 2002-01-07 08:50:19.000000000 -0600 +@@ -33,7 +33,7 @@ + + int rfc931_timeout = RFC931_TIMEOUT;/* Global so it can be changed */ + +-static jmp_buf timebuf; ++static sigjmp_buf timebuf; + + /* fsocket - open stdio stream on top of socket */ + +@@ -62,7 +62,7 @@ + static void timeout(sig) + int sig; + { +- longjmp(timebuf, sig); ++ siglongjmp(timebuf, sig); + } + + /* rfc931 - return remote user name, given socket structures */ +@@ -99,7 +99,7 @@ + * Set up a timer so we won't get stuck while waiting for the server. + */ + +- if (setjmp(timebuf) == 0) { ++ if (sigsetjmp(timebuf,1) == 0) { + signal(SIGALRM, timeout); + alarm(rfc931_timeout); + +diff -Naur tcp_wrappers_7.6/safe_finger.8 tcp_wrappers_7.6.gimli/safe_finger.8 +--- tcp_wrappers_7.6/safe_finger.8 1969-12-31 18:00:00.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/safe_finger.8 2002-01-07 08:50:19.000000000 -0600 +@@ -0,0 +1,34 @@ ++.TH SAFE_FINGER 8 "21th June 1997" Linux "Linux Programmer's Manual" ++.SH NAME ++safe_finger \- finger client wrapper that protects against nasty stuff ++from finger servers ++.SH SYNOPSIS ++.B safe_finger [finger_options] ++.SH DESCRIPTION ++The ++.B safe_finger ++command protects against nasty stuff from finger servers. Use this ++program for automatic reverse finger probes from the ++.B tcp_wrapper ++.B (tcpd) ++, not the raw finger command. The ++.B safe_finger ++command makes sure that the finger client is not run with root ++privileges. It also runs the finger client with a defined PATH ++environment. ++.B safe_finger ++will also protect you from problems caused by the output of some ++finger servers. The problem: some programs may react to stuff in ++the first column. Other programs may get upset by thrash anywhere ++on a line. File systems may fill up as the finger server keeps ++sending data. Text editors may bomb out on extremely long lines. ++The finger server may take forever because it is somehow wedged. ++.B safe_finger ++takes care of all this badness. ++.SH SEE ALSO ++.BR hosts_access (5), ++.BR hosts_options (5), ++.BR tcpd (8) ++.SH AUTHOR ++Wietse Venema, Eindhoven University of Technology, The Netherlands. ++ +diff -Naur tcp_wrappers_7.6/safe_finger.c tcp_wrappers_7.6.gimli/safe_finger.c +--- tcp_wrappers_7.6/safe_finger.c 1994-12-28 10:42:42.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/safe_finger.c 2002-01-07 08:50:19.000000000 -0600 +@@ -26,21 +26,24 @@ + #include + #include + #include ++#include + + extern void exit(); + + /* Local stuff */ + +-char path[] = "PATH=/bin:/usr/bin:/usr/ucb:/usr/bsd:/etc:/usr/etc:/usr/sbin"; ++char path[] = "PATH=/bin:/usr/bin:/sbin:/usr/sbin"; + + #define TIME_LIMIT 60 /* Do not keep listinging forever */ + #define INPUT_LENGTH 100000 /* Do not keep listinging forever */ + #define LINE_LENGTH 128 /* Editors can choke on long lines */ + #define FINGER_PROGRAM "finger" /* Most, if not all, UNIX systems */ + #define UNPRIV_NAME "nobody" /* Preferred privilege level */ +-#define UNPRIV_UGID 32767 /* Default uid and gid */ ++#define UNPRIV_UGID 65534 /* Default uid and gid */ + + int finger_pid; ++int allow_severity = SEVERITY; ++int deny_severity = LOG_WARNING; + + void cleanup(sig) + int sig; +diff -Naur tcp_wrappers_7.6/scaffold.c tcp_wrappers_7.6.gimli/scaffold.c +--- tcp_wrappers_7.6/scaffold.c 1997-03-21 12:27:24.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/scaffold.c 2002-01-07 08:50:19.000000000 -0600 +@@ -180,10 +180,12 @@ + + /* ARGSUSED */ + +-void rfc931(request) +-struct request_info *request; ++void rfc931(rmt_sin, our_sin, dest) ++struct sockaddr_in *rmt_sin; ++struct sockaddr_in *our_sin; ++char *dest; + { +- strcpy(request->user, unknown); ++ strcpy(dest, unknown); + } + + /* check_path - examine accessibility */ +diff -Naur tcp_wrappers_7.6/socket.c tcp_wrappers_7.6.gimli/socket.c +--- tcp_wrappers_7.6/socket.c 1997-03-21 12:27:25.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/socket.c 2002-01-07 08:50:19.000000000 -0600 +@@ -76,7 +76,11 @@ + { + static struct sockaddr_in client; + static struct sockaddr_in server; ++#if !defined (__GLIBC__) + int len; ++#else /* __GLIBC__ */ ++ size_t len; ++#endif /* __GLIBC__ */ + char buf[BUFSIZ]; + int fd = request->fd; + +@@ -224,7 +228,11 @@ + { + char buf[BUFSIZ]; + struct sockaddr_in sin; ++#if !defined(__GLIBC__) + int size = sizeof(sin); ++#else /* __GLIBC__ */ ++ size_t size = sizeof(sin); ++#endif /* __GLIBC__ */ + + /* + * Eat up the not-yet received datagram. Some systems insist on a +diff -Naur tcp_wrappers_7.6/tcpd.8 tcp_wrappers_7.6.gimli/tcpd.8 +--- tcp_wrappers_7.6/tcpd.8 1996-02-21 09:39:16.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/tcpd.8 2002-01-07 08:50:19.000000000 -0600 +@@ -94,7 +94,7 @@ + .PP + The example assumes that the network daemons live in /usr/etc. On some + systems, network daemons live in /usr/sbin or in /usr/libexec, or have +-no `in.\' prefix to their name. ++no `in.' prefix to their name. + .SH EXAMPLE 2 + This example applies when \fItcpd\fR expects that the network daemons + are left in their original place. +@@ -110,26 +110,26 @@ + becomes: + .sp + .ti +5 +-finger stream tcp nowait nobody /some/where/tcpd in.fingerd ++finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd + .sp + .fi + .PP + The example assumes that the network daemons live in /usr/etc. On some + systems, network daemons live in /usr/sbin or in /usr/libexec, the +-daemons have no `in.\' prefix to their name, or there is no userid ++daemons have no `in.' prefix to their name, or there is no userid + field in the inetd configuration file. + .PP + Similar changes will be needed for the other services that are to be +-covered by \fItcpd\fR. Send a `kill -HUP\' to the \fIinetd\fR(8) ++covered by \fItcpd\fR. Send a `kill -HUP' to the \fIinetd\fR(8) + process to make the changes effective. AIX users may also have to +-execute the `inetimp\' command. ++execute the `inetimp' command. + .SH EXAMPLE 3 + In the case of daemons that do not live in a common directory ("secret" + or otherwise), edit the \fIinetd\fR configuration file so that it + specifies an absolute path name for the process name field. For example: + .nf + .sp +- ntalk dgram udp wait root /some/where/tcpd /usr/local/lib/ntalkd ++ ntalk dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.ntalkd + .sp + .fi + .PP +diff -Naur tcp_wrappers_7.6/tcpd.h tcp_wrappers_7.6.gimli/tcpd.h +--- tcp_wrappers_7.6/tcpd.h 1996-03-19 09:22:25.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/tcpd.h 2002-01-07 08:50:19.000000000 -0600 +@@ -4,6 +4,25 @@ + * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands. + */ + ++#ifndef _TCPWRAPPERS_TCPD_H ++#define _TCPWRAPPERS_TCPD_H ++ ++/* someone else may have defined this */ ++#undef __P ++ ++/* use prototypes if we have an ANSI C compiler or are using C++ */ ++#if defined(__STDC__) || defined(__cplusplus) ++#define __P(args) args ++#else ++#define __P(args) () ++#endif ++ ++/* Need definitions of struct sockaddr_in and FILE. */ ++#include ++#include ++ ++__BEGIN_DECLS ++ + /* Structure to describe one communications endpoint. */ + + #define STRING_LENGTH 128 /* hosts, users, processes */ +@@ -25,10 +44,10 @@ + char pid[10]; /* access via eval_pid(request) */ + struct host_info client[1]; /* client endpoint info */ + struct host_info server[1]; /* server endpoint info */ +- void (*sink) (); /* datagram sink function or 0 */ +- void (*hostname) (); /* address to printable hostname */ +- void (*hostaddr) (); /* address to printable address */ +- void (*cleanup) (); /* cleanup function or 0 */ ++ void (*sink) __P((int)); /* datagram sink function or 0 */ ++ void (*hostname) __P((struct host_info *)); /* address to printable hostname */ ++ void (*hostaddr) __P((struct host_info *)); /* address to printable address */ ++ void (*cleanup) __P((struct request_info *)); /* cleanup function or 0 */ + struct netconfig *config; /* netdir handle */ + }; + +@@ -61,25 +80,30 @@ + /* Global functions. */ + + #if defined(TLI) || defined(PTX) || defined(TLI_SEQUENT) +-extern void fromhost(); /* get/validate client host info */ ++extern void fromhost __P((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 void shell_cmd(); /* execute shell command */ +-extern char *percent_x(); /* do % 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() */ ++extern void shell_cmd __P((char *)); /* execute shell command */ ++extern char *percent_x __P((char *, int, char *, struct request_info *)); /* do % expansion */ ++extern void rfc931 __P((struct sockaddr_in *, struct sockaddr_in *, char *)); /* client name from RFC 931 daemon */ ++extern void clean_exit __P((struct request_info *)); /* clean up and exit */ ++extern void refuse __P((struct request_info *)); /* clean up and exit */ ++extern char *xgets __P((char *, int, FILE *)); /* fgets() on steroids */ ++extern char *split_at __P((char *, int)); /* strchr() and split */ ++extern unsigned long dot_quad_addr __P((char *)); /* restricted inet_addr() */ + + /* Global variables. */ + ++#ifdef HAVE_WEAKSYMS ++extern int allow_severity __attribute__ ((weak)); /* for connection logging */ ++extern int deny_severity __attribute__ ((weak)); /* for connection logging */ ++#else + extern int allow_severity; /* for connection logging */ + extern int deny_severity; /* for connection logging */ ++#endif ++ + extern char *hosts_allow_table; /* for verification mode redirection */ + extern char *hosts_deny_table; /* for verification mode redirection */ + extern int hosts_access_verbose; /* for verbose matching mode */ +@@ -92,9 +116,14 @@ + */ + + #ifdef __STDC__ ++extern int hosts_access(struct request_info *request); ++extern int hosts_ctl(char *daemon, char *client_name, char *client_addr, ++ char *client_user); + extern struct request_info *request_init(struct request_info *,...); + extern struct request_info *request_set(struct request_info *,...); + #else ++extern int hosts_access(); ++extern int hosts_ctl(); + extern struct request_info *request_init(); /* initialize request */ + extern struct request_info *request_set(); /* update request structure */ + #endif +@@ -117,27 +146,31 @@ + * 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 */ ++extern char *eval_user __P((struct request_info *)); /* client user */ ++extern char *eval_hostname __P((struct host_info *)); /* printable hostname */ ++extern char *eval_hostaddr __P((struct host_info *)); /* printable host address */ ++extern char *eval_hostinfo __P((struct host_info *)); /* host name or address */ ++extern char *eval_client __P((struct request_info *)); /* whatever is available */ ++extern char *eval_server __P((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 */ ++/* look up endpoint addresses */ ++extern void sock_host __P((struct request_info *)); ++/* translate address to hostname */ ++extern void sock_hostname __P((struct host_info *)); ++/* address to printable address */ ++extern void sock_hostaddr __P((struct host_info *)); ++ + #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. */ ++extern void tli_host __P((struct request_info *)); /* look up endpoint addresses etc. */ + #endif + + /* +@@ -178,7 +211,7 @@ + * behavior. + */ + +-extern void process_options(); /* execute options */ ++extern void process_options __P((char *, struct request_info *)); /* execute options */ + extern int dry_run; /* verification flag */ + + /* Bug workarounds. */ +@@ -217,3 +250,7 @@ + #define strtok my_strtok + extern char *my_strtok(); + #endif ++ ++__END_DECLS ++ ++#endif /* tcpd.h */ +diff -Naur tcp_wrappers_7.6/tcpdchk.c tcp_wrappers_7.6.gimli/tcpdchk.c +--- tcp_wrappers_7.6/tcpdchk.c 1997-02-11 19:13:25.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/tcpdchk.c 2002-01-07 08:50:19.000000000 -0600 +@@ -350,6 +350,8 @@ + { + if (pat[0] == '@') { + tcpd_warn("%s: daemon name begins with \"@\"", pat); ++ } else if (pat[0] == '/') { ++ tcpd_warn("%s: daemon name begins with \"/\"", pat); + } else if (pat[0] == '.') { + tcpd_warn("%s: daemon name begins with dot", pat); + } else if (pat[strlen(pat) - 1] == '.') { +@@ -382,6 +384,8 @@ + { + if (pat[0] == '@') { /* @netgroup */ + tcpd_warn("%s: user name begins with \"@\"", pat); ++ } else if (pat[0] == '/') { ++ tcpd_warn("%s: user name begins with \"/\"", pat); + } else if (pat[0] == '.') { + tcpd_warn("%s: user name begins with dot", pat); + } else if (pat[strlen(pat) - 1] == '.') { +@@ -402,8 +406,13 @@ + static int check_host(pat) + char *pat; + { ++ char buf[BUFSIZ]; + char *mask; + int addr_count = 1; ++ FILE *fp; ++ struct tcpd_context saved_context; ++ char *cp; ++ char *wsp = " \t\r\n"; + + if (pat[0] == '@') { /* @netgroup */ + #ifdef NO_NETGRENT +@@ -422,6 +431,21 @@ + tcpd_warn("netgroup support disabled"); + #endif + #endif ++ } else if (pat[0] == '/') { /* /path/name */ ++ if ((fp = fopen(pat, "r")) != 0) { ++ saved_context = tcpd_context; ++ tcpd_context.file = pat; ++ tcpd_context.line = 0; ++ while (fgets(buf, sizeof(buf), fp)) { ++ tcpd_context.line++; ++ for (cp = strtok(buf, wsp); cp; cp = strtok((char *) 0, wsp)) ++ check_host(cp); ++ } ++ tcpd_context = saved_context; ++ fclose(fp); ++ } else if (errno != ENOENT) { ++ tcpd_warn("open %s: %m", pat); ++ } + } else if (mask = split_at(pat, '/')) { /* network/netmask */ + if (dot_quad_addr(pat) == INADDR_NONE + || dot_quad_addr(mask) == INADDR_NONE) +diff -Naur tcp_wrappers_7.6/try-from.8 tcp_wrappers_7.6.gimli/try-from.8 +--- tcp_wrappers_7.6/try-from.8 1969-12-31 18:00:00.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/try-from.8 2002-01-07 08:50:19.000000000 -0600 +@@ -0,0 +1,28 @@ ++.TH TRY-FROM 8 "21th June 1997" Linux "Linux Programmer's Manual" ++.SH NAME ++try-from \- test program for the tcp_wrapper ++.SH SYNOPSIS ++.B try-from ++.SH DESCRIPTION ++The ++.B try-from ++command can be called via a remote shell command to find out ++if the hostname and address are properly recognized ++by the ++.B tcp_wrapper ++library, if username lookup works, and (SysV only) if the TLI ++on top of IP heuristics work. Diagnostics are reported through ++.BR syslog (3) ++and redirected to stderr. ++ ++Example: ++ ++rsh host /some/where/try-from ++ ++.SH SEE ALSO ++.BR hosts_access (5), ++.BR hosts_options (5), ++.BR tcpd (8) ++.SH AUTHOR ++Wietse Venema, Eindhoven University of Technology, The Netherlands. ++ +diff -Naur tcp_wrappers_7.6/weak_symbols.c tcp_wrappers_7.6.gimli/weak_symbols.c +--- tcp_wrappers_7.6/weak_symbols.c 1969-12-31 18:00:00.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/weak_symbols.c 2002-01-07 08:50:19.000000000 -0600 +@@ -0,0 +1,11 @@ ++ /* ++ * @(#) weak_symbols.h 1.5 99/12/29 23:50 ++ * ++ * Author: Anthony Towns ++ */ ++ ++#ifdef HAVE_WEAKSYMS ++#include ++int deny_severity = LOG_WARNING; ++int allow_severity = SEVERITY; ++#endif +diff -Naur tcp_wrappers_7.6/workarounds.c tcp_wrappers_7.6.gimli/workarounds.c +--- tcp_wrappers_7.6/workarounds.c 1996-03-19 09:22:26.000000000 -0600 ++++ tcp_wrappers_7.6.gimli/workarounds.c 2002-01-07 08:50:19.000000000 -0600 +@@ -163,7 +163,11 @@ + int fix_getpeername(sock, sa, len) + int sock; + struct sockaddr *sa; ++#if !defined(__GLIBC__) + int *len; ++#else /* __GLIBC__ */ ++size_t *len; ++#endif /* __GLIBC__ */ + { + int ret; + struct sockaddr_in *sin = (struct sockaddr_in *) sa; diff --git a/SRC/patches/README b/SRC/patches/README new file mode 100644 index 0000000..976577a --- /dev/null +++ b/SRC/patches/README @@ -0,0 +1,3 @@ +Place any patch files here and preface each with a +number indicating the order of execution. Patch +files are expected to use a .patch extension. diff --git a/SRC/tcp_wrappers_7.6.tar.gz b/SRC/tcp_wrappers_7.6.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..674d6e8a9f460a5dcbf52112734b84df0e1c0c14 GIT binary patch literal 99438 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 z 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%0DMe+I;2;E%Sjg-w4l~hMPJmt0?CMJrf=(6A$sJ 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 Bl@I^` literal 0 HcmV?d00001 diff --git a/SRC/tcp_wrappers_7.6.tar.gz.sig b/SRC/tcp_wrappers_7.6.tar.gz.sig new file mode 100644 index 0000000000000000000000000000000000000000..fee975617592b5e28ba4c6a60196580685c1b1e0 GIT binary patch literal 152 zcmV;J0B8S+0F?s;05eIHtK5L{rqwchxd8!=3a~QN#x00+e1=MQZN*kvI@nLAptEA(uh+dIal!~i zfBMb8=@i>&%KZC7qTMx5#j1;89hzTVH$OIgSBI~8pf{72HVU;8KQmrM Gh5&f6!AYzD literal 0 HcmV?d00001