From: Waiman Long <longman@redhat.com>
To: Balbir Singh <bsingharora@gmail.com>,
Matthew Wilcox <willy@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
David Howells <dhowells@redhat.com>,
Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>,
James Morris <jmorris@namei.org>,
"Serge E. Hallyn" <serge@hallyn.com>,
linux-mm@kvack.org, keyrings@vger.kernel.org,
linux-kernel@vger.kernel.org,
Linus Torvalds <torvalds@linux-foundation.org>,
Joe Perches <joe@perches.com>,
David Rientjes <rientjes@google.com>
Subject: Re: [PATCH v3] mm: Add kvfree_sensitive() for freeing sensitive data objects
Date: Sun, 17 May 2020 22:39:38 -0400 [thread overview]
Message-ID: <365c8e0c-5d92-f032-b9ff-f64a8d314dfe@redhat.com> (raw)
In-Reply-To: <f779dea1-3b50-e354-3914-7394b4473f5b@gmail.com>
On 5/16/20 8:27 PM, Balbir Singh wrote:
>
> On 14/5/20 10:00 pm, Matthew Wilcox wrote:
>> On Thu, May 14, 2020 at 09:00:40PM +1000, Balbir Singh wrote:
>>> I wonder if the right thing to do is also to disable pre-emption, just so that the thread does not linger on with sensitive data.
>>>
>>> void kvfree_sensitive(const void *addr, size_t len)
>>> {
>>> preempt_disable();
>>> if (likely(!ZERO_OR_NULL_PTR(addr))) {
>>> memzero_explicit((void *)addr, len);
>>> kvfree(addr);
>>> }
>>> preempt_enable();
>>> }
>>> EXPORT_SYMBOL(kvfree_sensitive);
>> If it's _that_ sensitive then the caller should have disabled preemption.
>> Because preemption could otherwise have occurred immediately before
>> kvfree_sensitive() was called.
>>
> May be, but the callers of the API have to be explictly aware of the contract.
> I don't disagree with you on what you've said, but I was referring to the
> intent of freeing sensitive data vs the turn around time for doing so.
We can't disable preemption like that. The vfree() call may potentially
sleep. It could be a mess to keep track of the preemption state to make
that works.
The purpose of this API is to make sure that a newly allocated memory
block won't contain secret left behind from another task. There is no
guarantee on how long the freeing process will take.
Cheers,
Longman
prev parent reply other threads:[~2020-05-18 2:39 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-07 20:03 Waiman Long
2020-04-07 20:09 ` Linus Torvalds
2020-04-07 20:19 ` David Howells
2020-04-07 20:24 ` Waiman Long
2020-04-07 20:21 ` David Howells
2020-05-05 20:35 ` Andrew Morton
2020-05-06 1:29 ` Waiman Long
2020-04-07 20:31 ` Joe Perches
2020-04-07 20:45 ` Waiman Long
2020-04-07 21:01 ` Linus Torvalds
2020-04-07 21:24 ` Uladzislau Rezki
2020-04-07 21:30 ` Linus Torvalds
2020-04-07 22:12 ` Matthew Wilcox
2020-04-08 0:35 ` Joe Perches
2020-04-08 13:38 ` Jarkko Sakkinen
2020-05-01 23:22 ` Eric Biggers
2020-05-04 2:57 ` Waiman Long
2020-05-14 11:00 ` Balbir Singh
2020-05-14 12:00 ` Matthew Wilcox
2020-05-14 12:08 ` Joe Perches
2020-05-17 0:27 ` Balbir Singh
2020-05-17 0:44 ` Matthew Wilcox
2020-05-18 2:39 ` Waiman Long [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=365c8e0c-5d92-f032-b9ff-f64a8d314dfe@redhat.com \
--to=longman@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=bsingharora@gmail.com \
--cc=dhowells@redhat.com \
--cc=jarkko.sakkinen@linux.intel.com \
--cc=jmorris@namei.org \
--cc=joe@perches.com \
--cc=keyrings@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=rientjes@google.com \
--cc=serge@hallyn.com \
--cc=torvalds@linux-foundation.org \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox