Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 35b285d2 authored by Tetsuo Handa's avatar Tetsuo Handa Committed by Dyneteve
Browse files

BACKPORT: commoncap: don't alloc the credential unless needed in cap_task_prctl



In function cap_task_prctl(), we would allocate a credential
unconditionally and then check if we support the requested function.
If not we would release this credential with abort_creds() by using
RCU method. But on some archs such as powerpc, the sys_prctl is heavily
used to get/set the floating point exception mode. So the unnecessary
allocating/releasing of credential not only introduce runtime overhead
but also do cause OOM due to the RCU implementation.

This patch removes abort_creds() from cap_task_prctl() by calling
prepare_creds() only when we need to modify it.

Reported-by: default avatarKevin Hao <haokexin@gmail.com>
Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Reviewed-by: default avatarPaul Moore <paul@paul-moore.com>
Acked-by: default avatarSerge E. Hallyn <serge.hallyn@ubuntu.com>
Reviewed-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarJames Morris <james.l.morris@oracle.com>
(cherry picked from commit 6d6f3328422a3bc56b0d8dd026a5de845d2abfa7)

Bug: 35074030
Test: Builds.
Change-Id: I6f8136b017fd0dcafbf82553e64fbf002a268f20
Signed-off-by: default avatarJorge Lucangeli Obes <jorgelo@google.com>
parent 00838178
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment