]> andersk Git - openssh.git/commitdiff
- Include Andre Lucas' fixprogs script. Forgot to "cvs add" it yesterday
authordamien <damien>
Thu, 18 May 2000 14:03:23 +0000 (14:03 +0000)
committerdamien <damien>
Thu, 18 May 2000 14:03:23 +0000 (14:03 +0000)
 - OpenBSD CVS updates:
  - markus@cvs.openbsd.org
    [sshconnect.c]
    copy only ai_addrlen bytes; misiek@pld.org.pl
    [auth.c]
    accept an empty shell in authentication; bug reported by
    chris@tinker.ucr.edu
    [serverloop.c]
    we don't have stderr for interactive terminal sessions (fcntl errors)

ChangeLog
auth.c
sshconnect.c

index f995dafb94ed667dd9fddafece3592387c3266bb..0628bb08e6a3dbda1794880d0daac64e43fafb2e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+20000518
+ - Include Andre Lucas' fixprogs script. Forgot to "cvs add" it yesterday
+ - OpenBSD CVS updates:
+  - markus@cvs.openbsd.org
+    [sshconnect.c]
+    copy only ai_addrlen bytes; misiek@pld.org.pl
+    [auth.c]
+    accept an empty shell in authentication; bug reported by 
+    chris@tinker.ucr.edu
+    [serverloop.c]
+    we don't have stderr for interactive terminal sessions (fcntl errors)
+
 20000517
  - Fix from Andre Lucas <andre.lucas@dial.pipex.com>
   - Fixes command line printing segfaults (spotter: Bladt Norbert)
diff --git a/auth.c b/auth.c
index c3063e422ff0acd9dfa1381e86a73fa5a8c29566..c3baa962f763121ee4cb89d2e3d3aa7b43602ec0 100644 (file)
--- a/auth.c
+++ b/auth.c
@@ -5,7 +5,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: auth.c,v 1.6 2000/04/26 21:28:31 markus Exp $");
+RCSID("$OpenBSD: auth.c,v 1.7 2000/05/17 21:37:24 deraadt Exp $");
 
 #include "xmalloc.h"
 #include "rsa.h"
@@ -48,6 +48,7 @@ allowed_user(struct passwd * pw)
 {
        struct stat st;
        struct group *grp;
+       char *shell;
        int i;
 #ifdef WITH_AIXAUTHENTICATE
        char *loginmsg;
@@ -58,7 +59,14 @@ allowed_user(struct passwd * pw)
                return 0;
 
        /* deny if shell does not exists or is not executable */
-       if (stat(pw->pw_shell, &st) != 0)
+       /*
+        * Get the shell from the password data.  An empty shell field is
+        * legal, and means /bin/sh.
+        */
+       shell = (pw->pw_shell[0] == '\0') ? _PATH_BSHELL : pw->pw_shell;
+
+       /* deny if shell does not exists or is not executable */
+       if (stat(shell, &st) != 0)
                return 0;
        if (!((st.st_mode & S_IFREG) && (st.st_mode & (S_IXOTH|S_IXUSR|S_IXGRP))))
                return 0;
index 40e359ceba11ed0fc6a40db389757f08e1cc4e8c..bf00159b3c9effddcca1c83231ff6a16ec398403 100644 (file)
@@ -8,7 +8,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: sshconnect.c,v 1.73 2000/05/17 08:20:15 markus Exp $");
+RCSID("$OpenBSD: sshconnect.c,v 1.74 2000/05/17 16:57:02 markus Exp $");
 
 #include <openssl/bn.h>
 #include <openssl/dsa.h>
This page took 0.058175 seconds and 5 git commands to generate.