]> andersk Git - openssh.git/commitdiff
- djm@cvs.openbsd.org 2008/06/14 18:33:43
authordjm <djm>
Sun, 15 Jun 2008 21:53:16 +0000 (21:53 +0000)
committerdjm <djm>
Sun, 15 Jun 2008 21:53:16 +0000 (21:53 +0000)
     [session.c]
     suppress the warning message from chdir(homedir) failures
     when chrooted (bz#1461); ok dtucker

ChangeLog
session.c

index 347a39618cde05e661407e38648b80c6b72e97b1..c2209b368c9153a2acd0423c4e1123298f891cd5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,10 @@
    - dtucker@cvs.openbsd.org 2008/06/14 17:07:11
      [sshd.c]
      ensure default umask disallows at least group and world write; ok djm@
+   - djm@cvs.openbsd.org 2008/06/14 18:33:43
+     [session.c]
+     suppress the warning message from chdir(homedir) failures
+     when chrooted (bz#1461); ok dtucker
 
 20080614
  - (djm) [openbsd-compat/sigact.c] Avoid NULL derefs in ancient sigaction
index b4afed6fd459c1f49ba77cd83ee66bad96898ed0..3ea783f637de219468f301895301579b942b0339 100644 (file)
--- a/session.c
+++ b/session.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: session.c,v 1.238 2008/05/09 16:16:06 markus Exp $ */
+/* $OpenBSD: session.c,v 1.239 2008/06/14 18:33:43 djm Exp $ */
 /*
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
  *                    All rights reserved
@@ -1647,6 +1647,7 @@ do_child(Session *s, const char *command)
        char *argv[ARGV_MAX];
        const char *shell, *shell0, *hostname = NULL;
        struct passwd *pw = s->pw;
+       int r = 0;
 
        /* remove hostkey from the child's memory */
        destroy_sensitive_data();
@@ -1762,12 +1763,16 @@ do_child(Session *s, const char *command)
 
        /* Change current directory to the user's home directory. */
        if (chdir(pw->pw_dir) < 0) {
-               fprintf(stderr, "Could not chdir to home directory %s: %s\n",
-                   pw->pw_dir, strerror(errno));
+               /* Suppress missing homedir warning for chroot case */
 #ifdef HAVE_LOGIN_CAP
-               if (login_getcapbool(lc, "requirehome", 0))
-                       exit(1);
+               r = login_getcapbool(lc, "requirehome", 0);
 #endif
+               if (r || options.chroot_directory == NULL)
+                       fprintf(stderr, "Could not chdir to home "
+                           "directory %s: %s\n", pw->pw_dir,
+                           strerror(errno));
+               if (r)
+                       exit(1);
        }
 
        closefrom(STDERR_FILENO + 1);
This page took 0.103079 seconds and 5 git commands to generate.