815a0e
diff -up cronie-1.4.11/src/security.c.selinux-user cronie-1.4.11/src/security.c
815a0e
--- cronie-1.4.11/src/security.c.selinux-user	2017-03-07 13:52:23.076462218 +0100
815a0e
+++ cronie-1.4.11/src/security.c	2017-03-07 14:47:32.957371610 +0100
815a0e
@@ -41,8 +41,6 @@
815a0e
 #ifdef WITH_SELINUX
815a0e
 # include <selinux/selinux.h>
815a0e
 # include <selinux/context.h>
815a0e
-# include <selinux/flask.h>
815a0e
-# include <selinux/av_permissions.h>
815a0e
 # include <selinux/get_context_list.h>
815a0e
 #endif
815a0e
 
815a0e
@@ -476,7 +474,9 @@ get_security_context(const char *name, i
815a0e
 	security_context_t scontext = NULL;
815a0e
 	security_context_t file_context = NULL;
815a0e
 	security_context_t rawcontext=NULL;
815a0e
-	int retval = 0;
815a0e
+	context_t current_context = NULL;
815a0e
+	int retval;
815a0e
+	char *current_context_str = NULL;
815a0e
 	char *seuser = NULL;
815a0e
 	char *level = NULL;
815a0e
 
815a0e
@@ -490,10 +490,29 @@ get_security_context(const char *name, i
815a0e
 			log_it(name, getpid(), "getseuserbyname FAILED", name, 0);
815a0e
 			return (security_getenforce() > 0);
815a0e
 		}
815a0e
+
815a0e
+		retval = get_default_context_with_level(seuser, level, NULL, &scontext);
815a0e
+	}
815a0e
+	else {
815a0e
+		if (getcon(&current_context_str) < 0) {
815a0e
+			log_it(name, getpid(), "getcon FAILED", "", 0);
815a0e
+			return (security_getenforce() > 0);
815a0e
+		}
815a0e
+
815a0e
+		current_context = context_new(current_context_str);
815a0e
+		if (current_context == NULL) {
815a0e
+			log_it(name, getpid(), "context_new FAILED", current_context_str, 0);
815a0e
+			freecon(current_context_str);
815a0e
+			return (security_getenforce() > 0);
815a0e
+		}
815a0e
+
815a0e
+		const char *current_user = context_user_get(current_context);
815a0e
+		retval = get_default_context_with_level(current_user, level, NULL, &scontext);
815a0e
+
815a0e
+		freecon(current_context_str);
815a0e
+		context_free(current_context);
815a0e
 	}
815a0e
 
815a0e
-	retval = get_default_context_with_level(name == NULL ? "system_u" : seuser,
815a0e
-		level, NULL, &scontext);
815a0e
 	if (selinux_trans_to_raw_context(scontext, &rawcontext) == 0) {
815a0e
 		freecon(scontext);
815a0e
 		scontext = rawcontext;