Commit ce2fc710 authored by Ondrej Mosnacek's avatar Ondrej Mosnacek Committed by Paul Moore

selinux: fix misuse of mutex_is_locked()

mutex_is_locked() tests whether the mutex is locked *by any task*, while
here we want to test if it is held *by the current task*. To avoid
false/missed WARNINGs, use lockdep_assert_is_held() and
lockdep_assert_is_not_held() instead, which do the right thing (though
they are a no-op if CONFIG_LOCKDEP=n).

Cc: stable@vger.kernel.org
Fixes: 2554a48f ("selinux: measure state and policy capabilities")
Signed-off-by: default avatarOndrej Mosnacek <omosnace@redhat.com>
Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
parent 186edf7e
...@@ -77,7 +77,7 @@ void selinux_ima_measure_state_locked(struct selinux_state *state) ...@@ -77,7 +77,7 @@ void selinux_ima_measure_state_locked(struct selinux_state *state)
size_t policy_len; size_t policy_len;
int rc = 0; int rc = 0;
WARN_ON(!mutex_is_locked(&state->policy_mutex)); lockdep_assert_held(&state->policy_mutex);
state_str = selinux_ima_collect_state(state); state_str = selinux_ima_collect_state(state);
if (!state_str) { if (!state_str) {
...@@ -117,7 +117,7 @@ void selinux_ima_measure_state_locked(struct selinux_state *state) ...@@ -117,7 +117,7 @@ void selinux_ima_measure_state_locked(struct selinux_state *state)
*/ */
void selinux_ima_measure_state(struct selinux_state *state) void selinux_ima_measure_state(struct selinux_state *state)
{ {
WARN_ON(mutex_is_locked(&state->policy_mutex)); lockdep_assert_not_held(&state->policy_mutex);
mutex_lock(&state->policy_mutex); mutex_lock(&state->policy_mutex);
selinux_ima_measure_state_locked(state); selinux_ima_measure_state_locked(state);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment