From: Michael Halcrow <mhalcrow@us.ibm.com>
To: Andrew Morton <akpm@osdl.org>
Cc: linux-kernel@vger.kernel.org, tshighla@us.ibm.com, theotso@us.ibm.com
Subject: Re: [PATCH 3/3] eCryptfs: Encrypted passthrough
Date: Tue, 9 Jan 2007 17:44:18 -0600 [thread overview]
Message-ID: <20070109234418.GB32343@us.ibm.com> (raw)
In-Reply-To: <20070109144203.ce1ed092.akpm@osdl.org>
On Tue, Jan 09, 2007 at 02:42:03PM -0800, Andrew Morton wrote:
> On Tue, 9 Jan 2007 16:23:37 -0600
> Michael Halcrow <mhalcrow@us.ibm.com> wrote:
>
> > + page_virt = (char *)kmap(page);
>
> Do we _have_ to use kmap here? It's slow and theoretically deadlocky.
> kmap_atomic() is much preferred.
>
> Can the other kmap() calls in ecryptfs be converted?
We will look into doing this.
> We'd actually like to remove kmap() one day. Not much chance of that, but
> it's an objective.
>
> > + if (!page_virt) {
> > + rc = -ENOMEM;
> > + printk(KERN_ERR "Error mapping page\n");
> > + goto out;
> > + }
> > + memset(page_virt, 0, PAGE_CACHE_SIZE);
> > + if (page->index == 0) {
> > + rc = ecryptfs_read_xattr_region(
> > + page_virt, file->f_path.dentry);
>
> Are we assured that ecryptfs_read_xattr_region() cannot overrun the
> page?
Yes:
---
int ecryptfs_read_xattr_region(char *page_virt, struct dentry*ecryptfs_dentry)
{
ssize_t size;
int rc = 0;
size = ecryptfs_getxattr(ecryptfs_dentry, ECRYPTFS_XATTR_NAME,
page_virt, ECRYPTFS_DEFAULT_EXTENT_SIZE);
---
That winds up calling the lower filesystem's getxattr with
ECRYPTFS_DEFAULT_EXTENT_SIZE as the size parameter. eCryptfs validates
this value against PAGE_CACHE_SIZE in main.c::ecryptfs_init().
> > + set_header_info(page_virt, crypt_stat);
> > + }
>
> The kernel must always run flush_dcache_page() after modifying a pagecache
> page by hand. Please review all of ecryptfs for this.
We will work on some patches to address these issues.
Mike
next prev parent reply other threads:[~2007-01-09 23:44 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-09 22:21 [PATCH 0/3] eCryptfs: Support metadata in xattr Michael Halcrow
2007-01-09 22:22 ` [PATCH 1/3] eCryptfs: xattr flags and mount options Michael Halcrow
2007-01-09 22:22 ` [PATCH 2/3] eCryptfs: Generalize metadata read/write Michael Halcrow
2007-01-09 22:31 ` Andrew Morton
2007-01-09 22:23 ` [PATCH 3/3] eCryptfs: Encrypted passthrough Michael Halcrow
2007-01-09 22:42 ` Andrew Morton
2007-01-09 23:44 ` Michael Halcrow [this message]
2007-01-09 22:35 ` [PATCH 0/3] eCryptfs: Support metadata in xattr Andrew Morton
2007-01-09 23:23 ` Michael Halcrow
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=20070109234418.GB32343@us.ibm.com \
--to=mhalcrow@us.ibm.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=theotso@us.ibm.com \
--cc=tshighla@us.ibm.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.