Re: [PATCH] x86/pkeys: add check for pkey "overflow"

From: Cyrill Gorcunov
Date: Wed Jan 22 2020 - 13:51:16 EST


On Wed, Jan 22, 2020 at 08:53:46AM -0800, Dave Hansen wrote:
>
> Alex Shi reported the pkey macros above arch_set_user_pkey_access()
> to be unused. They are unused, and even refer to a nonexistent
> CONFIG option.
>
> @@ -922,6 +920,13 @@ int arch_set_user_pkey_access(struct tas
> if (!boot_cpu_has(X86_FEATURE_OSPKE))
> return -EINVAL;
>
> + /*
> + * This code should only be called with valid 'pkey'
> + * values originating from in-kernel users. Complain
> + * if a bad value is observed.
> + */
> + WARN_ON_ONCE(pkey >= arch_max_pkey());

Should not we rather abort this operation and exit with EINVAL
or something similar instead of calling wrmsr with overflowed
value? IOW,

if (pkey >= arch_max_pkey()) {
WARN_ON_ONCE(1);
return -EINVAL;
}