]> andersk Git - openssh.git/commitdiff
- markus@cvs.openbsd.org 2002/03/01 13:12:10
authormouring <mouring>
Tue, 5 Mar 2002 01:42:42 +0000 (01:42 +0000)
committermouring <mouring>
Tue, 5 Mar 2002 01:42:42 +0000 (01:42 +0000)
     [auth.c match.c match.h]
     undo the 'delay hostname lookup' change
     match.c must not use compress.c (via canonhost.c/packet.c)
     thanks to wilfried@

ChangeLog
auth.c
match.c
match.h

index 0d2d08ff0006c4f745fbeb8541a625c3d95c666e..426807862a0cef7f49452e205cc8f19a1d4204da 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
    - stevesk@cvs.openbsd.org 2002/02/28 20:56:00
      [auth.c]
      log user not allowed details, from dwd@bell-labs.com; ok markus@
+   - markus@cvs.openbsd.org 2002/03/01 13:12:10
+     [auth.c match.c match.h]
+     undo the 'delay hostname lookup' change
+     match.c must not use compress.c (via canonhost.c/packet.c)
+     thanks to wilfried@
 
 20020226
  - (tim) Bug 12 [configure.ac] add sys/bitypes.h to int64_t tests
diff --git a/auth.c b/auth.c
index a58bf9b7405b33282019109478b325718d0cb542..26dce5b670ab3792e363d779285586a200a6c7ee 100644 (file)
--- a/auth.c
+++ b/auth.c
@@ -23,7 +23,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: auth.c,v 1.34 2002/02/28 20:56:00 stevesk Exp $");
+RCSID("$OpenBSD: auth.c,v 1.35 2002/03/01 13:12:10 markus Exp $");
 
 #ifdef HAVE_LOGIN_H
 #include <login.h>
@@ -65,6 +65,7 @@ int
 allowed_user(struct passwd * pw)
 {
        struct stat st;
+       const char *hostname = NULL, *ipaddr = NULL;
        char *shell;
        int i;
 #ifdef WITH_AIXAUTHENTICATE
@@ -115,10 +116,15 @@ allowed_user(struct passwd * pw)
                return 0;
        }
 
+       if (options.num_deny_users > 0 || options.num_allow_users > 0) {
+               hostname = get_canonical_hostname(options.verify_reverse_mapping);
+               ipaddr = get_remote_ipaddr();
+       }
+
        /* Return false if user is listed in DenyUsers */
        if (options.num_deny_users > 0) {
                for (i = 0; i < options.num_deny_users; i++)
-                       if (match_user(pw->pw_name, options.verify_reverse_mapping,
+                       if (match_user(pw->pw_name, hostname, ipaddr,
                            options.deny_users[i])) {
                                log("User %.100s not allowed because listed in DenyUsers",
                                    pw->pw_name);
@@ -128,7 +134,7 @@ allowed_user(struct passwd * pw)
        /* Return false if AllowUsers isn't empty and user isn't listed there */
        if (options.num_allow_users > 0) {
                for (i = 0; i < options.num_allow_users; i++)
-                       if (match_user(pw->pw_name, options.verify_reverse_mapping,
+                       if (match_user(pw->pw_name, hostname, ipaddr,
                            options.allow_users[i]))
                                break;
                /* i < options.num_allow_users iff we break for loop */
diff --git a/match.c b/match.c
index e73ed2aa2e81617d8fdfc468b3ff40384f035be8..3ddb627302717236f0666a8ba9e6cbd216494896 100644 (file)
--- a/match.c
+++ b/match.c
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: match.c,v 1.18 2002/02/28 19:36:28 stevesk Exp $");
+RCSID("$OpenBSD: match.c,v 1.19 2002/03/01 13:12:10 markus Exp $");
 
 #include "match.h"
-#include "canohost.h"
 #include "xmalloc.h"
 
 /*
@@ -203,7 +202,7 @@ match_host_and_ip(const char *host, const char *ipaddr,
  * match user, user@host_or_ip, user@host_or_ip_list against pattern
  */
 int
-match_user(const char *user, int verify_reverse_mapping,
+match_user(const char *user, const char *host, const char *ipaddr,
     const char *pattern)
 {
        char *p, *pat;
@@ -217,9 +216,7 @@ match_user(const char *user, int verify_reverse_mapping,
        *p++ = '\0';
 
        if ((ret = match_pattern(user, pat)) == 1)
-               ret = match_host_and_ip(
-                   get_canonical_hostname(verify_reverse_mapping),
-                   get_remote_ipaddr(), p);
+               ret = match_host_and_ip(host, ipaddr, p);
        xfree(pat);
 
        return ret;
diff --git a/match.h b/match.h
index a5e85a9d872869fc36cf0ed8c61cd0d9101f72a2..a0764e0013f92df756f91123099c062e68e24c8b 100644 (file)
--- a/match.h
+++ b/match.h
@@ -1,4 +1,4 @@
-/*     $OpenBSD: match.h,v 1.11 2002/02/28 19:36:28 stevesk Exp $      */
+/*     $OpenBSD: match.h,v 1.12 2002/03/01 13:12:10 markus Exp $       */
 
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -18,7 +18,7 @@ int    match_pattern(const char *, const char *);
 int     match_pattern_list(const char *, const char *, u_int, int);
 int     match_hostname(const char *, const char *, u_int);
 int     match_host_and_ip(const char *, const char *, const char *);
-int     match_user(const char *, int, const char *);
+int     match_user(const char *, const char *, const char *, const char *);
 char   *match_list(const char *, const char *, u_int *);
 
 #endif
This page took 0.258613 seconds and 5 git commands to generate.