Messages in this thread | | | Date | Wed, 23 May 2018 11:08:40 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH] kernel: sys: fix potential Spectre v1 |
| |
Sorry for being late to the party..
On Wed, May 23, 2018 at 12:03:57AM -0500, Gustavo A. R. Silva wrote:
> +#define validate_index_nospec(index, size) \ > +({ \ > + bool ret = true; \ > + typeof(index) *ptr = &(index); \ > + typeof(size) _s = (size); \ > + \ > + BUILD_BUG_ON(sizeof(*ptr) > sizeof(long)); \ > + BUILD_BUG_ON(sizeof(_s) > sizeof(long)); \ > + \ > + if (*ptr >= size) \ > + ret = false; \ > + \ > + *ptr = array_index_nospec(*ptr, _s); \ > + \ > + ret; \ > +})
Would not something like:
bool ret = false;
....
if (*ptr < _s) { *ptr = array_index_nospec(*ptr, _s); ret = true; }
ret;
be more obvious?
| |