Blame SOURCES/pam-1.1.8-canonicalize-username.patch

c22a38
diff -up Linux-PAM-1.1.8/modules/pam_selinux/pam_selinux.c.canonicalize Linux-PAM-1.1.8/modules/pam_selinux/pam_selinux.c
c22a38
--- Linux-PAM-1.1.8/modules/pam_selinux/pam_selinux.c.canonicalize	2013-06-18 16:11:21.000000000 +0200
c22a38
+++ Linux-PAM-1.1.8/modules/pam_selinux/pam_selinux.c	2014-03-06 12:03:54.429639972 +0100
c22a38
@@ -491,12 +491,17 @@ compute_exec_context(pam_handle_t *pamh,
c22a38
   char *level = NULL;
c22a38
   security_context_t *contextlist = NULL;
c22a38
   int num_contexts = 0;
c22a38
+  const struct passwd *pwd;
c22a38
 
c22a38
   if (!(username = get_item(pamh, PAM_USER))) {
c22a38
     pam_syslog(pamh, LOG_ERR, "Cannot obtain the user name");
c22a38
     return PAM_USER_UNKNOWN;
c22a38
   }
c22a38
 
c22a38
+  if ((pwd = pam_modutil_getpwnam(pamh, username)) != NULL) {
c22a38
+    username = pwd->pw_name;
c22a38
+  } /* ignore error and keep using original username */
c22a38
+
c22a38
   /* compute execute context */
c22a38
 #ifdef HAVE_GETSEUSER
c22a38
   if (!(service = get_item(pamh, PAM_SERVICE))) {