Re: [PATCH 4.4 099/190] arm64: futex: Fix undefined behaviour with FUTEX_OP_OPARG_SHIFT usage

From: Ben Hutchings
Date: Tue May 15 2018 - 19:15:46 EST


On Wed, 2018-04-11 at 20:35 +0200, Greg Kroah-Hartman wrote:
> 4.4-stable review patch.ÂÂIf anyone has any objections, please let me know.
>
> ------------------
>
> > From: Will Deacon <will.deacon@xxxxxxx>
>
>
> [ Upstream commit 5f16a046f8e144c294ef98cd29d9458b5f8273e5 ]
>
> FUTEX_OP_OPARG_SHIFT instructs the futex code to treat the 12-bit oparg
> field as a shift value, potentially leading to a left shift value that
> is negative or with an absolute value that is significantly larger then
> the size of the type. UBSAN chokes with:
[...]
> Whilst I think this catches all of the issues, I'd much prefer to remove
> this stuff, as I think it's unused and the bugs are copy-pasted between
> a bunch of architectures.
[...]

Indeed. That more complete fix was done upstream by:

commit 30d6e0a4190d37740e9447e4e4815f06992dd8c3
Author: Jiri Slaby <jslaby@xxxxxxx>
Date:ÂÂÂThu Aug 24 09:31:05 2017 +0200

ÂÂÂÂfutex: Remove duplicated code and fix undefined behaviour

It's a bit big for stable - though most of the changes are deletions.
What do you think?

Ben.

--
Ben Hutchings
Software Developer, Codethink Ltd.