[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180523090840.GU12217@hirez.programming.kicks-ass.net>
Date: Wed, 23 May 2018 11:08:40 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: "Gustavo A. R. Silva" <gustavo@...eddedor.com>
Cc: Dan Williams <dan.j.williams@...el.com>,
Thomas Gleixner <tglx@...utronix.de>,
Andrew Morton <akpm@...ux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Alexei Starovoitov <ast@...nel.org>
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?
Powered by blists - more mailing lists