summaryrefslogtreecommitdiff
path: root/fs/ecryptfs/keystore.c
diff options
context:
space:
mode:
authorEric Sandeen <sandeen@redhat.com>2007-12-17 16:19:52 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-12-17 19:28:15 -0800
commit459e216429a04779216b61f0fb61938a459fd1ca (patch)
treeed21241e197acdc1162a5c1bc3b48c21a33ed40f /fs/ecryptfs/keystore.c
parent60af880339aae440293a0c8e93178fdcb41f8a29 (diff)
downloadlinux-exynos-459e216429a04779216b61f0fb61938a459fd1ca.tar.gz
linux-exynos-459e216429a04779216b61f0fb61938a459fd1ca.tar.bz2
linux-exynos-459e216429a04779216b61f0fb61938a459fd1ca.zip
ecryptfs: initialize new auth_tokens before teardown
ecryptfs_destroy_mount_crypt_stat() checks whether each auth_tok->global_auth_tok_key is nonzero and if so puts that key. However, in some early mount error paths nothing has initialized the pointer, and we try to key_put() garbage. Running the bad cipher tests in the testsuite exposes this, and it's happy with the following change. Signed-off-by: Eric Sandeen <sandeen@redhat.com> Cc: Michael Halcrow <mhalcrow@us.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/ecryptfs/keystore.c')
-rw-r--r--fs/ecryptfs/keystore.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ecryptfs/keystore.c b/fs/ecryptfs/keystore.c
index 263fed88c0ca..f458c1f35565 100644
--- a/fs/ecryptfs/keystore.c
+++ b/fs/ecryptfs/keystore.c
@@ -1860,7 +1860,7 @@ ecryptfs_add_global_auth_tok(struct ecryptfs_mount_crypt_stat *mount_crypt_stat,
struct ecryptfs_global_auth_tok *new_auth_tok;
int rc = 0;
- new_auth_tok = kmem_cache_alloc(ecryptfs_global_auth_tok_cache,
+ new_auth_tok = kmem_cache_zalloc(ecryptfs_global_auth_tok_cache,
GFP_KERNEL);
if (!new_auth_tok) {
rc = -ENOMEM;