1 From 763d17c9a18b0df7dbec2740f10dc40d378e3cc1 Mon Sep 17 00:00:00 2001
2 From: John Johansen <john.johansen@canonical.com>
3 Date: Sun, 6 Aug 2017 05:36:40 -0700
4 Subject: [PATCH 08/17] apparmor: cleanup conditional check for label in
7 Signed-off-by: John Johansen <john.johansen@canonical.com>
8 Acked-by: Seth Arnold <seth.arnold@canonical.com>
9 (cherry picked from commit 7e57939b9d67dcfc2c8348fd0e2c76a2f0349c75)
11 security/apparmor/label.c | 22 ++++++++--------------
12 1 file changed, 8 insertions(+), 14 deletions(-)
14 diff --git a/security/apparmor/label.c b/security/apparmor/label.c
15 index e324f4df3e34..38be7a89cc31 100644
16 --- a/security/apparmor/label.c
17 +++ b/security/apparmor/label.c
18 @@ -1450,9 +1450,11 @@ bool aa_update_label_name(struct aa_ns *ns, struct aa_label *label, gfp_t gfp)
19 * cached label name is present and visible
20 * @label->hname only exists if label is namespace hierachical
22 -static inline bool use_label_hname(struct aa_ns *ns, struct aa_label *label)
23 +static inline bool use_label_hname(struct aa_ns *ns, struct aa_label *label,
26 - if (label->hname && labels_ns(label) == ns)
27 + if (label->hname && (!ns || labels_ns(label) == ns) &&
28 + !(flags & ~FLAG_SHOW_MODE))
32 @@ -1710,10 +1712,8 @@ void aa_label_xaudit(struct audit_buffer *ab, struct aa_ns *ns,
37 - ns = labels_ns(label);
39 - if (!use_label_hname(ns, label) || display_mode(ns, label, flags)) {
40 + if (!use_label_hname(ns, label, flags) ||
41 + display_mode(ns, label, flags)) {
42 len = aa_label_asxprint(&name, ns, label, flags, gfp);
44 AA_DEBUG("label print error");
45 @@ -1738,10 +1738,7 @@ void aa_label_seq_xprint(struct seq_file *f, struct aa_ns *ns,
50 - ns = labels_ns(label);
52 - if (!use_label_hname(ns, label)) {
53 + if (!use_label_hname(ns, label, flags)) {
57 @@ -1764,10 +1761,7 @@ void aa_label_xprintk(struct aa_ns *ns, struct aa_label *label, int flags,
62 - ns = labels_ns(label);
64 - if (!use_label_hname(ns, label)) {
65 + if (!use_label_hname(ns, label, flags)) {