diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-08 23:33:59 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-08 23:33:59 -0400 |
commit | f4ebc993759dc25dc3db6b6f1a13a23df8264d4b (patch) | |
tree | 666ba193b462ac1db51d58d908665b96b18752fe | |
parent | 0c23664ee8c42f247dba7ceb620baabd892cef88 (diff) | |
parent | 1605b8471d64c855bc2493abf3adf6a1ebc3e645 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6:
[CRYPTO] cryptomgr: Fix use after free
-rw-r--r-- | crypto/cryptomgr.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/crypto/cryptomgr.c b/crypto/cryptomgr.c index 6958ea83ee44..e5fb7cca5107 100644 --- a/crypto/cryptomgr.c +++ b/crypto/cryptomgr.c | |||
@@ -24,8 +24,6 @@ | |||
24 | #include "internal.h" | 24 | #include "internal.h" |
25 | 25 | ||
26 | struct cryptomgr_param { | 26 | struct cryptomgr_param { |
27 | struct task_struct *thread; | ||
28 | |||
29 | struct rtattr *tb[CRYPTOA_MAX]; | 27 | struct rtattr *tb[CRYPTOA_MAX]; |
30 | 28 | ||
31 | struct { | 29 | struct { |
@@ -81,6 +79,7 @@ err: | |||
81 | 79 | ||
82 | static int cryptomgr_schedule_probe(struct crypto_larval *larval) | 80 | static int cryptomgr_schedule_probe(struct crypto_larval *larval) |
83 | { | 81 | { |
82 | struct task_struct *thread; | ||
84 | struct cryptomgr_param *param; | 83 | struct cryptomgr_param *param; |
85 | const char *name = larval->alg.cra_name; | 84 | const char *name = larval->alg.cra_name; |
86 | const char *p; | 85 | const char *p; |
@@ -130,8 +129,8 @@ static int cryptomgr_schedule_probe(struct crypto_larval *larval) | |||
130 | 129 | ||
131 | memcpy(param->larval.name, larval->alg.cra_name, CRYPTO_MAX_ALG_NAME); | 130 | memcpy(param->larval.name, larval->alg.cra_name, CRYPTO_MAX_ALG_NAME); |
132 | 131 | ||
133 | param->thread = kthread_run(cryptomgr_probe, param, "cryptomgr"); | 132 | thread = kthread_run(cryptomgr_probe, param, "cryptomgr"); |
134 | if (IS_ERR(param->thread)) | 133 | if (IS_ERR(thread)) |
135 | goto err_free_param; | 134 | goto err_free_param; |
136 | 135 | ||
137 | return NOTIFY_STOP; | 136 | return NOTIFY_STOP; |