e3123ed70fe0039a007071db1375124e441ced42
[gentoo.git] /
1 From 4cf9b9ce2df06fd5a29e5264a6552c9b02ec0b5b Mon Sep 17 00:00:00 2001
2 From: Stephen Smalley <sds@tycho.nsa.gov>
3 Date: Fri, 14 Oct 2016 13:36:37 -0400
4 Subject: [PATCH] libsemanage: genhomedircon: only set MLS level if MLS is
5  enabled
6
7 When a non-MLS policy was used with genhomedircon context_from_record()
8 in sepol would report an error because an MLS level was present when MLS
9 is disabled.  Based on a patch by Gary Tierney, amended to use
10 sepol_policydb_mls_enabled rather than semanage_mls_enabled because
11 we are testing the temporary working policy, not the active policy.
12
13 Reported-by: Jason Zaman <jason@perfinion.com>
14 Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
15 ---
16  libsemanage/src/genhomedircon.c | 6 +++++-
17  1 file changed, 5 insertions(+), 1 deletion(-)
18
19 diff --git a/libsemanage/src/genhomedircon.c b/libsemanage/src/genhomedircon.c
20 index 6991fff..5e9d722 100644
21 --- libsemanage/src/genhomedircon.c
22 +++ libsemanage/src/genhomedircon.c
23 @@ -638,7 +638,11 @@ static int write_contexts(genhomedircon_settings_t *s, FILE *out,
24                         goto fail;
25                 }
26  
27 -               if (sepol_context_set_user(sepolh, context, user->sename) < 0 ||
28 +               if (sepol_context_set_user(sepolh, context, user->sename) < 0) {
29 +                       goto fail;
30 +               }
31 +
32 +               if (sepol_policydb_mls_enabled(s->policydb) &&
33                     sepol_context_set_mls(sepolh, context, user->level) < 0) {
34                         goto fail;
35                 }
36 -- 
37 2.7.3
38