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

From: Cyrill Gorcunov
Date: Wed Jan 22 2020 - 14:29:50 EST


On Wed, Jan 22, 2020 at 11:09:47AM -0800, Dave Hansen wrote:
> On 1/22/20 10:51 AM, Cyrill Gorcunov wrote:
> >> + /*
> >> + * 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;
> > }
>
> I don't feel strongly about it. The reason I didn't do that is to
> minimize the chance that this would cause any functional regression.

OK, I don't mind leaving just WARN_ON_ONCE.

>
> It's not a huge chance, but I've certainly fat-fingered my share of
> off-by-one bugs.

Heh :)