diff options
author | Darren Tucker <dtucker@zip.com.au> | 2010-11-24 10:09:13 +1100 |
---|---|---|
committer | Darren Tucker <dtucker@zip.com.au> | 2010-11-24 10:09:13 +1100 |
commit | d995712383c043c4f9d8ca52363e6e1df128dc72 (patch) | |
tree | b621adc47831c9f85723c1a70d24f49d6ba33b15 /platform.c | |
parent | 9e0ff7afc894da2b5a9e5bfd334cf4a821acf0ae (diff) | |
download | openssh-git-d995712383c043c4f9d8ca52363e6e1df128dc72.tar.gz |
- (dtucker) [platform.c session.c] Move the getluid call out of session.c and
into the platform-specific code Only affects SCO, tested by and ok tim@.
Diffstat (limited to 'platform.c')
-rw-r--r-- | platform.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -1,4 +1,4 @@ -/* $Id: platform.c,v 1.16 2010/11/07 07:05:54 dtucker Exp $ */ +/* $Id: platform.c,v 1.17 2010/11/23 23:09:13 dtucker Exp $ */ /* * Copyright (c) 2006 Darren Tucker. All rights reserved. @@ -115,6 +115,14 @@ platform_setusercontext(struct passwd *pw) } } # endif /* USE_PAM */ + +#if !defined(HAVE_LOGIN_CAP) && defined(HAVE_GETLUID) && defined(HAVE_SETLUID) + if (getuid() == 0 || geteuid() == 0) { + /* Sets login uid for accounting */ + if (getluid() == -1 && setluid(pw->pw_uid) == -1) + error("setluid: %s", strerror(errno)); + } +#endif } /* |