[WireGuard] Error building against grsec-enabled kernel

PaX Team pageexec at gmail.com
Fri Oct 21 11:46:08 CEST 2016


On 21 Oct 2016 at 17:47, Jason A. Donenfeld wrote:

> On Fri, Oct 21, 2016 at 5:02 PM, PaX Team <pageexec at gmail.com> wrote:
> > are you sure it was for satisfying PaX only and not a bug itself? :)
> 
> Blurg. I was overly hasty. Note to self: do not prepare conf
> presentations and push code at the same time. Indeed this /should/ be
> ~0, which means "unset". I can't see any bugs by making it 0, but it
> would make things "semantically incorrect", I think.
> 
> So the bug is actually in the ipv6 fragmentation code. I just sent a
> patch upstream and CC'd you and Emese.

thanks, i'm wondering if the tree should be audited for similar cases as we
have open issues that have the same symptom (and ideally such fields changes
would be done in accessor functions...). btw, your second submission has a
few extra hunks disclosing debug code and full paths on your system, you probably
didn't intend it ;).

> I'll use CONFIG_PAX_CONSTIFY_PLUGIN.

in general, plugin dependence should be expressed by plugin specific defines
(CONSTIFY_PLUGIN in your case) and not by the config option as the two may
not always correlate (e.g., it used to be possible to compile the kernel with
a plugin-incapable gcc while enabling plugin dependent features and in such
cases depending on the config option could produce unintended results).

> Upstream uses __read_mostly for that structure always, everywhere else.

FYI, i added detection for such cases in the plugin but it'd also be possible to
simply override these interfering section attributes. i went with the compile
error instead of the fixup as this way people pay attention (and i'm forced
to fix the fallout in PaX) but it's also less convenient for out-of-tree code...



More information about the WireGuard mailing list