summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--openbsd-compat/port-aix.c42
-rw-r--r--openbsd-compat/port-aix.h27
-rw-r--r--session.c3
4 files changed, 59 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index 7451ee269..7ef5c3604 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -58,6 +58,7 @@
58 ok itojun@ 58 ok itojun@
59 - (bal) Failed password attempts don't increment counter on AIX. Bug #145 59 - (bal) Failed password attempts don't increment counter on AIX. Bug #145
60 - (bal) Missed Makefile.in change. keysign needs readconf.o 60 - (bal) Missed Makefile.in change. keysign needs readconf.o
61 - (bal) Clean up aix_usrinfo(). Ignore TTY= period I guess.
61 62
6220020702 6320020702
63 - (djm) Use PAM_MSG_MEMBER for PAM_TEXT_INFO messages, use xmalloc & 64 - (djm) Use PAM_MSG_MEMBER for PAM_TEXT_INFO messages, use xmalloc &
@@ -1266,4 +1267,4 @@
1266 - (stevesk) entropy.c: typo in debug message 1267 - (stevesk) entropy.c: typo in debug message
1267 - (djm) ssh-keygen -i needs seeded RNG; report from markus@ 1268 - (djm) ssh-keygen -i needs seeded RNG; report from markus@
1268 1269
1269$Id: ChangeLog,v 1.2331 2002/07/04 03:07:15 mouring Exp $ 1270$Id: ChangeLog,v 1.2332 2002/07/04 03:08:40 mouring Exp $
diff --git a/openbsd-compat/port-aix.c b/openbsd-compat/port-aix.c
index ca0a88e69..02f185955 100644
--- a/openbsd-compat/port-aix.c
+++ b/openbsd-compat/port-aix.c
@@ -1,3 +1,25 @@
1/*
2 * Redistribution and use in source and binary forms, with or without
3 * modification, are permitted provided that the following conditions
4 * are met:
5 * 1. Redistributions of source code must retain the above copyright
6 * notice, this list of conditions and the following disclaimer.
7 * 2. Redistributions in binary form must reproduce the above copyright
8 * notice, this list of conditions and the following disclaimer in the
9 * documentation and/or other materials provided with the distribution.
10 *
11 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
12 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
13 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
14 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
15 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
17 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
18 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
19 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
20 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
21 *
22 */
1#include "includes.h" 23#include "includes.h"
2 24
3#ifdef _AIX 25#ifdef _AIX
@@ -6,21 +28,21 @@
6#include <../xmalloc.h> 28#include <../xmalloc.h>
7 29
8/* 30/*
9 * AIX has a "usrinfo" area where logname and 31 * AIX has a "usrinfo" area where logname and other stuff is stored -
10 * other stuff is stored - a few applications 32 * a few applications actually use this and die if it's not set
11 * actually use this and die if it's not set 33 *
34 * NOTE: TTY= should be set, but since no one uses it and it's hard to
35 * acquire due to privsep code. We will just drop support.
12 */ 36 */
13void 37void
14aix_usrinfo(struct passwd *pw, char *tty, int ttyfd) 38aix_usrinfo(struct passwd *pw)
15{ 39{
16 u_int i; 40 u_int i;
17 char *cp=NULL; 41 char *cp;
18 42
19 if (ttyfd == -1) 43 cp = xmalloc(16 + 2 * strlen(pw->pw_name));
20 tty[0] = '\0'; 44 i = sprintf(cp, "LOGNAME=%s%cNAME=%s%c%c", pw->pw_name, 0,
21 cp = xmalloc(22 + strlen(tty) + 2 * strlen(pw->pw_name)); 45 pw->pw_name, 0, 0);
22 i = sprintf(cp, "LOGNAME=%s%cNAME=%s%cTTY=%s%c%c", pw->pw_name, 0,
23 pw->pw_name, 0, tty, 0, 0);
24 if (usrinfo(SETUINFO, cp, i) == -1) 46 if (usrinfo(SETUINFO, cp, i) == -1)
25 fatal("Couldn't set usrinfo: %s", strerror(errno)); 47 fatal("Couldn't set usrinfo: %s", strerror(errno));
26 debug3("AIX/UsrInfo: set len %d", i); 48 debug3("AIX/UsrInfo: set len %d", i);
diff --git a/openbsd-compat/port-aix.h b/openbsd-compat/port-aix.h
index e4d14f4ae..491ca4cd4 100644
--- a/openbsd-compat/port-aix.h
+++ b/openbsd-compat/port-aix.h
@@ -1,5 +1,26 @@
1#ifdef _AIX 1/*
2 2 * Redistribution and use in source and binary forms, with or without
3void aix_usrinfo(struct passwd *pw, char *tty, int ttyfd); 3 * modification, are permitted provided that the following conditions
4 * are met:
5 * 1. Redistributions of source code must retain the above copyright
6 * notice, this list of conditions and the following disclaimer.
7 * 2. Redistributions in binary form must reproduce the above copyright
8 * notice, this list of conditions and the following disclaimer in the
9 * documentation and/or other materials provided with the distribution.
10 *
11 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
12 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
13 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
14 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
15 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
17 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
18 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
19 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
20 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
21 *
22 */
4 23
24#ifdef _AIX
25void aix_usrinfo(struct passwd *pw);
5#endif /* _AIX */ 26#endif /* _AIX */
diff --git a/session.c b/session.c
index 19b22c2aa..774e6168a 100644
--- a/session.c
+++ b/session.c
@@ -1209,8 +1209,7 @@ do_setusercontext(struct passwd *pw)
1209 irix_setusercontext(pw); 1209 irix_setusercontext(pw);
1210# endif /* defined(WITH_IRIX_PROJECT) || defined(WITH_IRIX_JOBS) || defined(WITH_IRIX_ARRAY) */ 1210# endif /* defined(WITH_IRIX_PROJECT) || defined(WITH_IRIX_JOBS) || defined(WITH_IRIX_ARRAY) */
1211# ifdef _AIX 1211# ifdef _AIX
1212 /* XXX: Disable tty setting. Enabled if required later */ 1212 aix_usrinfo(pw);
1213 aix_usrinfo(pw, &tty, -1);
1214# endif /* _AIX */ 1213# endif /* _AIX */
1215 /* Permanently switch to the desired uid. */ 1214 /* Permanently switch to the desired uid. */
1216 permanently_set_uid(pw); 1215 permanently_set_uid(pw);