Blame SOURCES/0002-mcstrans-Do-not-accept-incomplete-contexts.patch

14aba2
From 659cb59cd6cfe36c954c77f945c06a0cd8218287 Mon Sep 17 00:00:00 2001
14aba2
From: Petr Lautrbach <plautrba@redhat.com>
14aba2
Date: Mon, 15 Apr 2019 15:22:51 +0200
14aba2
Subject: [PATCH 2/2] mcstrans: Do not accept incomplete contexts
14aba2
MIME-Version: 1.0
14aba2
Content-Type: text/plain; charset=UTF-8
14aba2
Content-Transfer-Encoding: 8bit
14aba2
14aba2
Fixes:
14aba2
$ python3
14aba2
> import selinux
14aba2
> selinux.selinux_raw_context_to_color("xyz_u:xyz_r:xyz_t:")
14aba2
14aba2
Traceback (most recent call last):
14aba2
  File "<stdin>", line 2, in <module>
14aba2
OSError: [Errno 0] Error
14aba2
14aba2
:: [ 10:25:45 ] :: [  BEGIN   ] :: Running 'service mcstransd status'
14aba2
Redirecting to /bin/systemctl status mcstransd.service
14aba2
● mcstrans.service - Translates SELinux MCS/MLS labels to human readable form
14aba2
   Loaded: loaded (/usr/lib/systemd/system/mcstrans.service; disabled; vendor preset: disabled)
14aba2
   Active: failed (Result: core-dump) since Fri 2019-04-12 10:25:44 EDT; 1s ago
14aba2
  Process: 16681 ExecStart=/sbin/mcstransd -f (code=dumped, signal=SEGV)
14aba2
 Main PID: 16681 (code=dumped, signal=SEGV)
14aba2
14aba2
systemd[1]: mcstrans.service: Main process exited, code=dumped, status=11/SEGV
14aba2
systemd[1]: mcstrans.service: Failed with result 'core-dump'.
14aba2
14aba2
Signed-off-by: Petr Lautrbach <plautrba@redhat.com>
14aba2
---
14aba2
 mcstrans/src/mcscolor.c | 12 ++++++++----
14aba2
 1 file changed, 8 insertions(+), 4 deletions(-)
14aba2
14aba2
diff --git a/mcstrans/src/mcscolor.c b/mcstrans/src/mcscolor.c
14aba2
index 6ea1aa97..79fc1c8b 100644
14aba2
--- a/mcstrans/src/mcscolor.c
14aba2
+++ b/mcstrans/src/mcscolor.c
14aba2
@@ -272,10 +272,14 @@ static const unsigned precedence[N_COLOR][N_COLOR - 1] = {
14aba2
 static const secolor_t default_color = { 0x000000, 0xffffff };
14aba2
 
14aba2
 static int parse_components(context_t con, char **components) {
14aba2
-	components[COLOR_USER] = (char *)context_user_get(con);
14aba2
-	components[COLOR_ROLE] = (char *)context_role_get(con);
14aba2
-	components[COLOR_TYPE] = (char *)context_type_get(con);
14aba2
-	components[COLOR_RANGE] = (char *)context_range_get(con);
14aba2
+	if ((components[COLOR_USER] = (char *)context_user_get(con)) == NULL)
14aba2
+		return -1;
14aba2
+	if ((components[COLOR_ROLE] = (char *)context_role_get(con)) == NULL)
14aba2
+		return -1;
14aba2
+	if ((components[COLOR_TYPE] = (char *)context_type_get(con)) == NULL)
14aba2
+		return -1;
14aba2
+	if ((components[COLOR_RANGE] = (char *)context_range_get(con)) == NULL)
14aba2
+		return -1;
14aba2
 
14aba2
 	return 0;
14aba2
 }
14aba2
-- 
14aba2
2.21.0
14aba2