linux-sg2042/fs/ecryptfs
Michael Halcrow ac97b9f9a2 eCryptfs: Allocate up to two scatterlists for crypto ops on keys
I have received some reports of out-of-memory errors on some older AMD
architectures.  These errors are what I would expect to see if
crypt_stat->key were split between two separate pages.  eCryptfs should
not assume that any of the memory sent through virt_to_scatterlist() is
all contained in a single page, and so this patch allocates two
scatterlist structs instead of one when processing keys.  I have received
confirmation from one person affected by this bug that this patch resolves
the issue for him, and so I am submitting it for inclusion in a future
stable release.

Note that virt_to_scatterlist() runs sg_init_table() on the scatterlist
structs passed to it, so the calls to sg_init_table() in
decrypt_passphrase_encrypted_session_key() are redundant.

Signed-off-by: Michael Halcrow <mhalcrow@us.ibm.com>
Reported-by: Paulo J. S. Silva <pjssilva@ime.usp.br>
Cc: "Leon Woestenberg" <leon.woestenberg@gmail.com>
Cc: Tim Gardner <tim.gardner@canonical.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-19 18:49:58 -08:00
..
Makefile eCryptfs: remove netlink transport 2008-10-16 11:21:39 -07:00
crypto.c ecryptfs: fix memory corruption when storing crypto info in xattrs 2008-10-30 11:38:46 -07:00
debug.c eCryptfs: update comment and debug statement 2007-10-16 09:43:11 -07:00
dentry.c eCryptfs: Swap dput() and mntput() 2008-03-19 18:53:36 -07:00
ecryptfs_kernel.h eCryptfs: remove netlink transport 2008-10-16 11:21:39 -07:00
file.c eCryptfs: remove retry loop in ecryptfs_readdir() 2008-10-16 11:21:38 -07:00
inode.c [PATCH] kill nameidata passing to permission(), rename to inode_permission() 2008-07-26 20:53:31 -04:00
keystore.c eCryptfs: Allocate up to two scatterlists for crypto ops on keys 2008-11-19 18:49:58 -08:00
kthread.c eCryptfs: Privileged kthread for lower file opens 2008-07-24 10:47:30 -07:00
main.c [PATCH] assorted path_lookup() -> kern_path() conversions 2008-10-23 05:12:52 -04:00
messaging.c eCryptfs: remove netlink transport 2008-10-16 11:21:39 -07:00
miscdev.c ecryptfs: discard ecryptfsd registration messages in miscdev 2008-07-24 10:47:31 -07:00
mmap.c ecryptfs: convert to use new aops 2008-10-16 11:21:39 -07:00
read_write.c eCryptfs: remove unnecessary page decrypt call 2008-06-06 11:29:09 -07:00
super.c ecryptfs: remove debug as mount option, and warn if set via modprobe 2008-02-06 10:41:12 -08:00