]> andersk Git - openssh.git/blobdiff - auth-rhosts.c
Hopefully things did not get mixed around too much. It compiles under
[openssh.git] / auth-rhosts.c
index f670276b90e462ccd28d857667e04f0768432e97..4f9ea886d47a5bf0365c4168a182cad4348df025 100644 (file)
@@ -1,28 +1,28 @@
 /*
- *
- * auth-rhosts.c
- *
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
- *
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
  *                    All rights reserved
- *
- * Created: Fri Mar 17 05:12:18 1995 ylo
- *
  * Rhosts authentication.  This file contains code to check whether to admit
  * the login based on rhosts authentication.  This file also processes
  * /etc/hosts.equiv.
  *
+ * As far as I am concerned, the code I have written for this software
+ * can be used freely for any purpose.  Any derived versions of this
+ * software must be clearly marked as such, and if the derived work is
+ * incompatible with the protocol description in the RFC file, it must be
+ * called by a name other than "ssh" or "Secure Shell".
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: auth-rhosts.c,v 1.14 2000/06/20 01:39:38 markus Exp $");
+RCSID("$OpenBSD: auth-rhosts.c,v 1.19 2001/01/21 19:05:42 markus Exp $");
 
 #include "packet.h"
-#include "ssh.h"
 #include "xmalloc.h"
 #include "uidswap.h"
+#include "pathnames.h"
+#include "log.h"
 #include "servconf.h"
+#include "canohost.h"
 
 /*
  * This function processes an rhosts-style file (.rhosts, .shosts, or
@@ -154,8 +154,11 @@ auth_rhosts(struct passwd *pw, const char *client_user)
        const char *hostname, *ipaddr;
        struct stat st;
        static const char *rhosts_files[] = {".shosts", ".rhosts", NULL};
-       unsigned int rhosts_file_index;
+       u_int rhosts_file_index;
 
+       /* no user given */
+       if (pw == NULL)
+               return 0;
        /* Switch to the user's uid. */
        temporarily_use_uid(pw->pw_uid);
        /*
@@ -176,8 +179,8 @@ auth_rhosts(struct passwd *pw, const char *client_user)
 
        /* Deny if The user has no .shosts or .rhosts file and there are no system-wide files. */
        if (!rhosts_files[rhosts_file_index] &&
-           stat("/etc/hosts.equiv", &st) < 0 &&
-           stat(SSH_HOSTS_EQUIV, &st) < 0)
+           stat(_PATH_RHOSTS_EQUIV, &st) < 0 &&
+           stat(_PATH_SSH_HOSTS_EQUIV, &st) < 0)
                return 0;
 
        hostname = get_canonical_hostname();
@@ -191,10 +194,10 @@ auth_rhosts(struct passwd *pw, const char *client_user)
                                          hostname, ipaddr);
                        return 1;
                }
-               if (check_rhosts_file(SSH_HOSTS_EQUIV, hostname, ipaddr, client_user,
+               if (check_rhosts_file(_PATH_SSH_HOSTS_EQUIV, hostname, ipaddr, client_user,
                                      pw->pw_name)) {
                        packet_send_debug("Accepted for %.100s [%.100s] by %.100s.",
-                                     hostname, ipaddr, SSH_HOSTS_EQUIV);
+                                     hostname, ipaddr, _PATH_SSH_HOSTS_EQUIV);
                        return 1;
                }
        }
This page took 0.061522 seconds and 4 git commands to generate.