summaryrefslogtreecommitdiff
path: root/core/tcp_wrappers/02_all_redhat-bug17795.patch
diff options
context:
space:
mode:
Diffstat (limited to 'core/tcp_wrappers/02_all_redhat-bug17795.patch')
-rw-r--r--core/tcp_wrappers/02_all_redhat-bug17795.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/core/tcp_wrappers/02_all_redhat-bug17795.patch b/core/tcp_wrappers/02_all_redhat-bug17795.patch
new file mode 100644
index 000000000..ff0ec455b
--- /dev/null
+++ b/core/tcp_wrappers/02_all_redhat-bug17795.patch
@@ -0,0 +1,49 @@
+--- hosts_access.c Wed Feb 12 03:13:23 1997
++++ hosts_access.c Wed Jul 19 08:37:02 2000
+@@ -240,6 +255,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 +302,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));
+--- hosts_access.5 2003-08-03 19:09:56.000000000 +0000
++++ hosts_access.5 2003-08-03 19:13:32.000000000 +0000
+@@ -91,0 +92,7 @@
++.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.
+