selinux: fix misuse of mutex_is_locked()
commitce2fc710c9
upstream. 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:2554a48f44
("selinux: measure state and policy capabilities") Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com> Signed-off-by: Paul Moore <paul@paul-moore.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
0d773aaf5a
Коммит
af091cc27e
|
@ -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)
|
||||||
*/
|
*/
|
||||||
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);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче