From d35140335c52ab2c89079453f337aa3627e0b80c85ac05ec03ff26f9c0742d94 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Thu, 25 Oct 2012 07:25:37 +0000 Subject: [PATCH] Accepting request 139192 from home:vitezslav_cizek:branches:security:SELinux - when building "standard" (not MCS/MLS) selinux-policies, libsemanage will crash, because "level" is NULL (libsemanage-2.1.6-NULL_level_fix.patch) OBS-URL: https://build.opensuse.org/request/show/139192 OBS-URL: https://build.opensuse.org/package/show/security:SELinux/libsemanage?expand=0&rev=37 --- libsemanage-2.1.6-NULL_level_fix.patch | 37 ++++++++++++++++++++++++++ libsemanage.changes | 7 +++++ libsemanage.spec | 2 ++ python-semanage.spec | 2 +- 4 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 libsemanage-2.1.6-NULL_level_fix.patch diff --git a/libsemanage-2.1.6-NULL_level_fix.patch b/libsemanage-2.1.6-NULL_level_fix.patch new file mode 100644 index 0000000..31afe31 --- /dev/null +++ b/libsemanage-2.1.6-NULL_level_fix.patch @@ -0,0 +1,37 @@ +From 64aff2c80f28280724f64628d6bf4c4722b4f75f Mon Sep 17 00:00:00 2001 +From: Xin Ouyang +Date: Thu, 12 Jan 2012 16:58:34 +0800 +Subject: [PATCH] libsemanage: Fix segfault for building standard policies. + +If you are building "standard" policies(not MCS/MLS), libsemanage +will crash, which caused by strdup() to "level" NULL pointers. +For example, semodule -s refpolicy -b base.pp -i a.pp +--- + libsemanage/src/genhomedircon.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/libsemanage/src/genhomedircon.c b/libsemanage/src/genhomedircon.c +index d2646ae..262a6cd 100644 +--- a/libsemanage/src/genhomedircon.c ++++ b/libsemanage/src/genhomedircon.c +@@ -778,6 +778,8 @@ static int setup_fallback_user(genhomedircon_settings_t * s) + { + prefix = semanage_user_get_prefix(u); + level = semanage_user_get_mlslevel(u); ++ if (level == NULL) ++ level = ""; + } + + if (set_fallback_user(s, seuname, prefix, level) != 0) +@@ -861,6 +863,8 @@ static genhomedircon_user_entry_t *get_users(genhomedircon_settings_t * s, + if (u) { + prefix = semanage_user_get_prefix(*u); + level = semanage_user_get_mlslevel(*u); ++ if (level == NULL) ++ level = ""; + } else { + prefix = name; + level = "s0"; +-- +1.7.7.3 + diff --git a/libsemanage.changes b/libsemanage.changes index 34d8c49..029edf1 100644 --- a/libsemanage.changes +++ b/libsemanage.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Oct 24 16:36:25 UTC 2012 - vcizek@suse.com + +- when building "standard" (not MCS/MLS) selinux-policies, + libsemanage will crash, because "level" is NULL + (libsemanage-2.1.6-NULL_level_fix.patch) + ------------------------------------------------------------------- Mon Aug 27 13:49:45 UTC 2012 - cfarrell@suse.com diff --git a/libsemanage.spec b/libsemanage.spec index 7c82175..457481a 100644 --- a/libsemanage.spec +++ b/libsemanage.spec @@ -32,6 +32,7 @@ Group: System/Libraries Url: http://userspace.selinuxproject.org/ Source: http://userspace.selinuxproject.org/releases/20120216/%{name}-%{version}.tar.gz Source1: baselibs.conf +Patch: libsemanage-2.1.6-NULL_level_fix.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %define debug_package_requires libsemanage1 = %{version}-%{release} @@ -93,6 +94,7 @@ needed for developing applications that manipulate binary policies. %prep %setup -q +%patch -p2 %build make clean diff --git a/python-semanage.spec b/python-semanage.spec index 3761bb0..36782d9 100644 --- a/python-semanage.spec +++ b/python-semanage.spec @@ -18,8 +18,8 @@ BuildRequires: bison BuildRequires: flex -BuildRequires: libselinux-devel BuildRequires: libbz2-devel +BuildRequires: libselinux-devel BuildRequires: libsepol-devel BuildRequires: libustr-devel BuildRequires: python-devel