Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1684065

Re: [PATCH 2/4] kasan: added functions for unpoisoning stack variables

Path csiph.com!eternal-september.org!feeder.eternal-september.org!aioe.org!bofh.it!news.nic.it!robomod
From Dmitry Vyukov <dvyukov@google.com>
Newsgroups linux.kernel
Subject Re: [PATCH 2/4] kasan: added functions for unpoisoning stack variables
Date Mon, 10 Jul 2017 10:50:03 +0200
Message-ID <u1Cye-2Hm-29@gated-at.bofh.it> (permalink)
References <u0n8d-3bI-5@gated-at.bofh.it> <u0n8e-3bI-31@gated-at.bofh.it>
X-Original-To Greg Hackmann <ghackmann@google.com>
Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=1BlQ8gJgiZk7iHuvdTXletpMjf8eOaO0u9k4P3Gbzaw=; b=FGnsAEqPDaJnxMAQAwPj8USmhUXs6JtGfCjn+Odj9Lt15GSyzF2FEKvbFRuoQfA9XY naHZYOO7Gl6uW/OqIXn9zuy6tLrWzinEfYW4wap+xvis+9h1xPRZSD2rmdPeB7YSpD8P wm5j+Mnc1yRQ/4qPJm7G/27VEyR0AJN45JBN9y5mLcZ/m62lpk61YntpQM7sX1nIa6da Vtxx3W4Vy4ezy9G1cBS311UC5RrlZGtGeVbjiRg0YoU20nJhwuQy4Cr4QoEGeEVe4SZL 7x2e1AeYYWnTUPljUWQidIwRfrS7HbVA/qz0jRH3b0c678eAw1L8jZRLSBIxSifJVH3m /+AQ==
X-Google-Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=1BlQ8gJgiZk7iHuvdTXletpMjf8eOaO0u9k4P3Gbzaw=; b=It2uP0OvTXywL95rvDoLMs1tSdUhDgWSpHmXjT76Vbh/A9ye2j/QiFbzMAmnoeb10p VX0jlfg7uRrTwvCCjTfWaq0v5wWZY8WjxQFZLQdddkFJJF36CT6gGIK5VEYua0dobw8I 35K2wwUm5tokh9EV1v1yHwgQDOshO+4itxtiDNu+8vyJMmvQskjFCNoVOwZFydcQrw9D v3Y1VGWtKZl2zS6UlzLAzaowPVrOOV8sfD6y/m0zChlbNR+HowhZvMpyYrEq97/J9S7N XnM4bM+3JxKxiKCyNZiKbRqmcmYNde+2P9wIj1wc6V++vdvowunqDQNOy1730M8OY4g3 SFfQ==
X-Gm-Message-State AIVw11105urpD6KOUWyQUsHImMmbFLAZALv6tcrjv/7iWR2G+oKyHOS3 Y/5NMsJBUNwMHx+1w8YofMrdkYE7jlZJ
X-Received by 10.202.245.5 with SMTP id t5mr8487567oih.176.1499676393583; Mon, 10 Jul 2017 01:46:33 -0700 (PDT)
MIME-Version 1.0
Content-Type text/plain; charset="UTF-8"
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 46
Organization linux.* mail to news gateway
X-Original-Cc Andrey Ryabinin <aryabinin@virtuozzo.com>, Alexander Potapenko <glider@google.com>, Masahiro Yamada <yamada.masahiro@socionext.com>, Michal Marek <mmarek@suse.com>, LKML <linux-kernel@vger.kernel.org>, kasan-dev <kasan-dev@googlegroups.com>, "linux-mm@kvack.org" <linux-mm@kvack.org>, "open list:KERNEL BUILD + fi..." <linux-kbuild@vger.kernel.org>, Matthias Kaehlcke <mka@chromium.org>, Michael Davidson <md@google.com>
X-Original-Date Mon, 10 Jul 2017 10:46:13 +0200
X-Original-Message-ID <CACT4Y+ZnvBSd09U83WK_ayep1e+ZXeSmsMQa08GAjOxSLx3xmg@mail.gmail.com>
X-Original-References <20170706220114.142438-1-ghackmann@google.com> <20170706220114.142438-3-ghackmann@google.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1684065

Show key headers only | View raw


On Fri, Jul 7, 2017 at 12:01 AM, Greg Hackmann <ghackmann@google.com> wrote:
> From: Alexander Potapenko <glider@google.com>
>
> As a code-size optimization, LLVM builds since r279383 may
> bulk-manipulate the shadow region when (un)poisoning large memory
> blocks.  This requires new callbacks that simply do an uninstrumented
> memset().
>
> This fixes linking the Clang-built kernel when using KASAN.
>
> Signed-off-by: Alexander Potapenko <glider@google.com>
> [ghackmann@google.com: fix memset() parameters, and tweak
>  commit message to describe new callbacks]
> Signed-off-by: Greg Hackmann <ghackmann@google.com>
> ---
>  mm/kasan/kasan.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
>
> diff --git a/mm/kasan/kasan.c b/mm/kasan/kasan.c
> index 892b626f564b..89911e5c69f9 100644
> --- a/mm/kasan/kasan.c
> +++ b/mm/kasan/kasan.c
> @@ -828,6 +828,21 @@ void __asan_allocas_unpoison(const void *stack_top, const void *stack_bottom)
>  }
>  EXPORT_SYMBOL(__asan_allocas_unpoison);
>
> +/* Emitted by the compiler to [un]poison local variables. */
> +#define DEFINE_ASAN_SET_SHADOW(byte) \
> +       void __asan_set_shadow_##byte(const void *addr, size_t size)    \
> +       {                                                               \
> +               __memset((void *)addr, 0x##byte, size);                 \
> +       }                                                               \
> +       EXPORT_SYMBOL(__asan_set_shadow_##byte)
> +
> +DEFINE_ASAN_SET_SHADOW(00);
> +DEFINE_ASAN_SET_SHADOW(f1);
> +DEFINE_ASAN_SET_SHADOW(f2);
> +DEFINE_ASAN_SET_SHADOW(f3);
> +DEFINE_ASAN_SET_SHADOW(f5);
> +DEFINE_ASAN_SET_SHADOW(f8);
> +
>  #ifdef CONFIG_MEMORY_HOTPLUG
>  static int kasan_mem_notifier(struct notifier_block *nb,
>                         unsigned long action, void *data)

Reviewed-by: Dmitry Vyukov <dvyukov@google.com>

Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

[PATCH 2/4] kasan: added functions for unpoisoning stack variables Greg Hackmann <ghackmann@google.com> - 2017-07-07 00:10 +0200
  Re: [PATCH 2/4] kasan: added functions for unpoisoning stack variables Dmitry Vyukov <dvyukov@google.com> - 2017-07-10 10:50 +0200

csiph-web