home *** CD-ROM | disk | FTP | other *** search
/ vsiftp.vmssoftware.com / VSIPUBLIC@vsiftp.vmssoftware.com.tar / FREEWARE / FREEWARE40.ZIP / pine / c-client / pat_os_sun.c < prev    next >
C/C++ Source or Header  |  1994-01-09  |  1KB  |  41 lines

  1. *** os_sun.c    Tue Aug  3 15:42:33 1993
  2. --- ../../secure/os_sun.c    Mon Aug  9 19:43:40 1993
  3. ***************
  4. *** 60,65 ****
  5. --- 60,68 ----
  6.   #include <errno.h>
  7.   extern int errno;        /* just in case */
  8.   #include <pwd.h>
  9. + #include <sys/label.h>
  10. + #include <sys/audit.h>
  11. + #include <pwdadj.h>
  12.   #include <syslog.h>
  13.   #include "mail.h"
  14.   #include "misc.h"
  15. ***************
  16. *** 225,235 ****
  17.       int argc;
  18.       char *argv[];
  19.   {
  20.     struct passwd *pw = getpwnam (lcase (user));
  21. !                 /* no entry for this user or root */
  22. !   if (!(pw && pw->pw_uid)) return NIL;
  23. !                 /* validate password */
  24. !   if (strcmp (pw->pw_passwd,(char *) crypt (pass,pw->pw_passwd))) return NIL;
  25.     setgid (pw->pw_gid);        /* all OK, login in as that user */
  26.     initgroups (user,pw->pw_gid);    /* initialize groups */
  27.     setuid (pw->pw_uid);
  28. --- 228,239 ----
  29.       int argc;
  30.       char *argv[];
  31.   {
  32. +   struct passwd_adjunct *pa;
  33.     struct passwd *pw = getpwnam (lcase (user));
  34. !                 /* validate user and password */
  35. !   if ((!(pw && pw->pw_uid && (pa = getpwanam (pw->pw_name)))) ||
  36. !       strcmp (pa->pwa_passwd,(char *) crypt (pass,pa->pwa_passwd)))
  37. !     return NIL;
  38.     setgid (pw->pw_gid);        /* all OK, login in as that user */
  39.     initgroups (user,pw->pw_gid);    /* initialize groups */
  40.     setuid (pw->pw_uid);
  41.