Re: [PATCH 16/18] net: mpls: prevent bounds-check bypass via speculative execution
From: Linus Torvalds
Date: Mon Jan 08 2018 - 23:21:16 EST
On Mon, Jan 8, 2018 at 8:13 PM, Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> # carry will be clear if idx >= max
> cmpq %idx,%max
Bah. Other way around.
cmpq %max,%idx
I'm a moron.
> # mask will be clear if carry was clear, ~0 otherwise
> sbbq %mask,%mask
>
> to generate mask directly. I might have screwed that up. Worth perhaps trying?
More importantly, worth _testing_ and fixing my hand-waving "asm like
this" crap.
But I do think that simple two-instruction cmpq/sbbq sequence could
get it right in just two trivial ALU instructions.
Linus