3
0
forked from pool/libsemanage
libsemanage/libsemanage-2.1.6-NULL_level_fix.patch
Marcus Meissner d35140335c 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
2012-10-25 07:25:37 +00:00

38 lines
1.2 KiB
Diff

From 64aff2c80f28280724f64628d6bf4c4722b4f75f Mon Sep 17 00:00:00 2001
From: Xin Ouyang <xinpascal@gmail.com>
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