diff options
author | John Johansen <john.johansen@canonical.com> | 2017-08-16 09:33:48 -0700 |
---|---|---|
committer | John Johansen <john.johansen@canonical.com> | 2017-09-22 13:00:58 -0700 |
commit | bc4d82fb946e7b471eab2a80e384227c4eb15652 (patch) | |
tree | 6a22655d27fa6875d3146b4be3b08b737b6fa5c8 /security | |
parent | 15372b97aa7593c6f5bc1afe69f42fd403c40685 (diff) | |
download | op-kernel-dev-bc4d82fb946e7b471eab2a80e384227c4eb15652.zip op-kernel-dev-bc4d82fb946e7b471eab2a80e384227c4eb15652.tar.gz |
apparmor: fix incorrect type assignment when freeing proxies
sparse reports
poisoning the proxy->label before freeing the struct is resulting in
a sparse build warning.
../security/apparmor/label.c:52:30: warning: incorrect type in assignment (different address spaces)
../security/apparmor/label.c:52:30: expected struct aa_label [noderef] <asn:4>*label
../security/apparmor/label.c:52:30: got struct aa_label *<noident>
fix with RCU_INIT_POINTER as this is one of those cases where
rcu_assign_pointer() is not needed.
Signed-off-by: John Johansen <john.johansen@canonical.com>
Diffstat (limited to 'security')
-rw-r--r-- | security/apparmor/label.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/security/apparmor/label.c b/security/apparmor/label.c index 52b4ef1..c5b99b9 100644 --- a/security/apparmor/label.c +++ b/security/apparmor/label.c @@ -49,7 +49,7 @@ static void free_proxy(struct aa_proxy *proxy) /* p->label will not updated any more as p is dead */ aa_put_label(rcu_dereference_protected(proxy->label, true)); memset(proxy, 0, sizeof(*proxy)); - proxy->label = (struct aa_label *) PROXY_POISON; + RCU_INIT_POINTER(proxy->label, (struct aa_label *)PROXY_POISON); kfree(proxy); } } |