In function utrace_add_engine is a missing else while verifying if utrace_release_task was already called, which can lead to adding to a reaping utrace engine.
Signed-off-by: Veaceslav Falico <vfal...@redhat.com> --- diff --git a/kernel/utrace.c b/kernel/utrace.c index 906145e..8fc1867 100644 --- a/kernel/utrace.c +++ b/kernel/utrace.c @@ -153,7 +153,7 @@ static int utrace_add_engine(struct task_struct *target, * Already entered utrace_release_task(), cannot attach now. */ ret = -ESRCH; - } if ((flags & UTRACE_ATTACH_EXCLUSIVE) && + } else if ((flags & UTRACE_ATTACH_EXCLUSIVE) && unlikely(matching_engine(utrace, flags, ops, data))) { ret = -EEXIST; } else {