summaryrefslogtreecommitdiffstats
path: root/platform.c
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2010-11-05 03:00:05 +0100
committerDarren Tucker <dtucker@zip.com.au>2010-11-05 03:00:05 +0100
commit728d8371a1dc1b615284ece94b0085897b4c0b51 (patch)
tree949dc94374774d643bb2799e4de1795fc92e559c /platform.c
parent - (dtucker) [platform.c] Only call setpgrp on BSDI if running as root to (diff)
downloadopenssh-728d8371a1dc1b615284ece94b0085897b4c0b51.tar.xz
openssh-728d8371a1dc1b615284ece94b0085897b4c0b51.zip
- (dtucker) [platform.c session.c] Move the PAM credential establishment for
the LOGIN_CAP case into platform.c.
Diffstat (limited to 'platform.c')
-rw-r--r--platform.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/platform.c b/platform.c
index 570f130ae..0335eaae6 100644
--- a/platform.c
+++ b/platform.c
@@ -1,4 +1,4 @@
-/* $Id: platform.c,v 1.8 2010/11/05 01:50:41 dtucker Exp $ */
+/* $Id: platform.c,v 1.9 2010/11/05 02:00:05 dtucker Exp $ */
/*
* Copyright (c) 2006 Darren Tucker. All rights reserved.
@@ -21,6 +21,8 @@
#include "openbsd-compat/openbsd-compat.h"
+extern int use_privsep;
+
void
platform_pre_listen(void)
{
@@ -79,6 +81,18 @@ platform_setusercontext(struct passwd *pw)
if (getuid() == 0 || geteuid() == 0)
setpgid(0, 0);
# endif
+
+#if defined(HAVE_LOGIN_CAP) && defined(USE_PAM)
+ /*
+ * If we have both LOGIN_CAP and PAM, we want to establish creds
+ * before calling setusercontext (in session.c:do_setusercontext).
+ */
+ if (getuid() == 0 || geteuid() == 0) {
+ if (options.use_pam) {
+ do_pam_setcred(use_privsep);
+ }
+ }
+# endif /* USE_PAM */
}
/*