[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20211115140444.bca2b88cfdd992760a413442@linux-foundation.org>
Date: Mon, 15 Nov 2021 14:04:44 -0800
From: Andrew Morton <akpm@...ux-foundation.org>
To: David Hildenbrand <david@...hat.com>
Cc: linux-kernel@...r.kernel.org, Baoquan He <bhe@...hat.com>,
Dave Young <dyoung@...hat.com>,
Vivek Goyal <vgoyal@...hat.com>,
Philipp Rudo <prudo@...hat.com>, kexec@...ts.infradead.org,
linux-mm@...ck.org, linux-fsdevel@...r.kernel.org
Subject: Re: [PATCH v2] proc/vmcore: fix clearing user buffer by properly
using clear_user()
On Fri, 12 Nov 2021 10:27:50 +0100 David Hildenbrand <david@...hat.com> wrote:
> To clear a user buffer we cannot simply use memset, we have to use
> clear_user(). With a virtio-mem device that registers a vmcore_cb and has
> some logically unplugged memory inside an added Linux memory block, I can
> easily trigger a BUG by copying the vmcore via "cp":
>
> ...
>
> Some x86-64 CPUs have a CPU feature called "Supervisor Mode Access
> Prevention (SMAP)", which is used to detect wrong access from the kernel to
> user buffers like this: SMAP triggers a permissions violation on wrong
> access. In the x86-64 variant of clear_user(), SMAP is properly
> handled via clac()+stac().
>
> To fix, properly use clear_user() when we're dealing with a user buffer.
>
I added cc:stable, OK?
Powered by blists - more mailing lists