Re: [PATCH 08/10] x86/xsaves: Fix PTRACE frames for XSAVES

From: Dave Hansen
Date: Mon Feb 22 2016 - 15:00:29 EST


On 02/22/2016 11:00 AM, Yu-cheng Yu wrote:
> + if (xsave->header.xfeatures & XFEATURE_MASK_SUPERVISOR)
> + xsave->header.xfeatures = xfeatures | XFEATURE_MASK_SUPERVISOR;
> + else
> + xsave->header.xfeatures = xfeatures;

This is dangerous. It says, "if any supervisor feature bit is set, then
set *ALL* of the known bits". There's no way that can work.

Don't you just want to or in the new bits that were in the passed-in
'xfeatures':

xsave->header.xfeatures |= xfeatures;

'xfeatures' is known not to contain any supervisor bits.