View | Details | Raw Unified | Return to bug 112932
Collapse All | Expand All

(-)session.c (+4 lines)
Lines 543-548 Link Here
543
    pid_t	pid;
543
    pid_t	pid;
544
#ifdef HAS_SETUSERCONTEXT
544
#ifdef HAS_SETUSERCONTEXT
545
    struct passwd* pwd;
545
    struct passwd* pwd;
546
    extern char **environ;
546
#endif
547
#endif
547
#ifdef USE_PAM
548
#ifdef USE_PAM
548
    pam_handle_t *pamh = thepamh ();
549
    pam_handle_t *pamh = thepamh ();
Lines 657-662 Link Here
657
	 * Set the user's credentials: uid, gid, groups,
658
	 * Set the user's credentials: uid, gid, groups,
658
	 * environment variables, resource limits, and umask.
659
	 * environment variables, resource limits, and umask.
659
	 */
660
	 */
661
	/* destroy user environment before calling setusercontext */
662
	environ = verify->userEnviron;
660
	pwd = getpwnam(name);
663
	pwd = getpwnam(name);
661
	if (pwd) {
664
	if (pwd) {
662
	    if (setusercontext(NULL, pwd, pwd->pw_uid, LOGIN_SETALL) < 0) {
665
	    if (setusercontext(NULL, pwd, pwd->pw_uid, LOGIN_SETALL) < 0) {
Lines 664-669 Link Here
664
		    errno);
667
		    errno);
665
		return (0);
668
		return (0);
666
	    }
669
	    }
670
	    verify->userEnviron = environ;
667
	    endpwent();
671
	    endpwent();
668
	} else {
672
	} else {
669
	    LogError ("getpwnam for \"%s\" failed, errno=%d\n", name, errno);
673
	    LogError ("getpwnam for \"%s\" failed, errno=%d\n", name, errno);

Return to bug 112932