Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 4 Jun 2020 17:20:48 +0300
From: Alexander Popov <alex.popov@...ux.com>
To: Jann Horn <jannh@...gle.com>, Will Deacon <will@...nel.org>
Cc: Kees Cook <keescook@...omium.org>, Emese Revfy <re.emese@...il.com>,
 Miguel Ojeda <miguel.ojeda.sandonis@...il.com>,
 Masahiro Yamada <masahiroy@...nel.org>,
 Michal Marek <michal.lkml@...kovi.net>,
 Andrew Morton <akpm@...ux-foundation.org>,
 Masahiro Yamada <yamada.masahiro@...ionext.com>,
 Thiago Jung Bauermann <bauerman@...ux.ibm.com>,
 Luis Chamberlain <mcgrof@...nel.org>, Jessica Yu <jeyu@...nel.org>,
 Sven Schnelle <svens@...ckframe.org>, Iurii Zaikin <yzaikin@...gle.com>,
 Catalin Marinas <catalin.marinas@....com>,
 Vincenzo Frascino <vincenzo.frascino@....com>,
 Thomas Gleixner <tglx@...utronix.de>, Peter Collingbourne <pcc@...gle.com>,
 Naohiro Aota <naohiro.aota@....com>, Alexander Monakov <amonakov@...ras.ru>,
 Mathias Krause <minipli@...glemail.com>, PaX Team <pageexec@...email.hu>,
 Brad Spengler <spender@...ecurity.net>, Laura Abbott <labbott@...hat.com>,
 Florian Weimer <fweimer@...hat.com>,
 Kernel Hardening <kernel-hardening@...ts.openwall.com>,
 linux-kbuild@...r.kernel.org, the arch/x86 maintainers <x86@...nel.org>,
 Linux ARM <linux-arm-kernel@...ts.infradead.org>,
 kernel list <linux-kernel@...r.kernel.org>, gcc@....gnu.org,
 notify@...nel.org
Subject: Re: [PATCH 5/5] gcc-plugins/stackleak: Don't instrument
 vgettimeofday.c in arm64 VDSO

On 04.06.2020 17:14, Jann Horn wrote:
> On Thu, Jun 4, 2020 at 3:58 PM Will Deacon <will@...nel.org> wrote:
>> On Thu, Jun 04, 2020 at 04:49:57PM +0300, Alexander Popov wrote:
>>> Don't try instrumenting functions in arch/arm64/kernel/vdso/vgettimeofday.c.
>>> Otherwise that can cause issues if the cleanup pass of stackleak gcc plugin
>>> is disabled.
>>>
>>> Signed-off-by: Alexander Popov <alex.popov@...ux.com>
>>> ---
>>>  arch/arm64/kernel/vdso/Makefile | 3 ++-
>>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
>>> index 3862cad2410c..9b84cafbd2da 100644
>>> --- a/arch/arm64/kernel/vdso/Makefile
>>> +++ b/arch/arm64/kernel/vdso/Makefile
>>> @@ -32,7 +32,8 @@ UBSAN_SANITIZE                      := n
>>>  OBJECT_FILES_NON_STANDARD    := y
>>>  KCOV_INSTRUMENT                      := n
>>>
>>> -CFLAGS_vgettimeofday.o = -O2 -mcmodel=tiny -fasynchronous-unwind-tables
>>> +CFLAGS_vgettimeofday.o = -O2 -mcmodel=tiny -fasynchronous-unwind-tables \
>>> +             $(DISABLE_STACKLEAK_PLUGIN)
>>
>> I can pick this one up via arm64, thanks. Are there any other plugins we
>> should be wary of? 

I can't tell exactly. I'm sure Kees has the whole picture.

>> It looks like x86 filters out $(GCC_PLUGINS_CFLAGS)
>> when building the vDSO.

Yes, that's why building x86 vDSO doesn't need $(DISABLE_STACKLEAK_PLUGIN).

> Maybe at some point we should replace exclusions based on
> GCC_PLUGINS_CFLAGS and KASAN_SANITIZE and UBSAN_SANITIZE and
> OBJECT_FILES_NON_STANDARD and so on with something more generic...
> something that says "this file will not be built into the normal
> kernel, it contains code that runs in realmode / userspace / some
> similarly weird context, and none of our instrumentation
> infrastructure is available there"...

Good idea. I would also add 'notrace' to that list.

Best regards,
Alexander

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.