33 lines
1.1 KiB
Diff
33 lines
1.1 KiB
Diff
|
diff -up Linux-PAM-1.0.1/modules/pam_selinux/pam_selinux.c.restore-execcon Linux-PAM-1.0.1/modules/pam_selinux/pam_selinux.c
|
||
|
--- Linux-PAM-1.0.1/modules/pam_selinux/pam_selinux.c.restore-execcon 2008-03-20 18:06:32.000000000 +0100
|
||
|
+++ Linux-PAM-1.0.1/modules/pam_selinux/pam_selinux.c 2008-04-22 21:11:34.000000000 +0200
|
||
|
@@ -702,21 +702,21 @@ pam_sm_close_session(pam_handle_t *pamh,
|
||
|
free(ttyn);
|
||
|
ttyn=NULL;
|
||
|
}
|
||
|
- if (prev_user_context) {
|
||
|
- if (setexeccon(prev_user_context)) {
|
||
|
+
|
||
|
+ if (setexeccon(prev_user_context)) {
|
||
|
pam_syslog(pamh, LOG_ERR, "Unable to restore executable context %s.",
|
||
|
- prev_user_context);
|
||
|
+ prev_user_context ? prev_user_context : "");
|
||
|
if (security_getenforce() == 1)
|
||
|
status = PAM_AUTH_ERR;
|
||
|
else
|
||
|
status = PAM_SUCCESS;
|
||
|
- }
|
||
|
+ } else if (debug)
|
||
|
+ pam_syslog(pamh, LOG_NOTICE, "Executable context back to original");
|
||
|
+
|
||
|
+ if (prev_user_context) {
|
||
|
freecon(prev_user_context);
|
||
|
prev_user_context = NULL;
|
||
|
}
|
||
|
|
||
|
- if (debug)
|
||
|
- pam_syslog(pamh, LOG_NOTICE, "setcontext back to orginal");
|
||
|
-
|
||
|
return status;
|
||
|
}
|