diff options
-rw-r--r-- | security/keys/request_key.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/security/keys/request_key.c b/security/keys/request_key.c index 4bd6bdb74193..c411f9bb156b 100644 --- a/security/keys/request_key.c +++ b/security/keys/request_key.c | |||
@@ -93,9 +93,16 @@ static void umh_keys_cleanup(struct subprocess_info *info) | |||
93 | static int call_usermodehelper_keys(char *path, char **argv, char **envp, | 93 | static int call_usermodehelper_keys(char *path, char **argv, char **envp, |
94 | struct key *session_keyring, int wait) | 94 | struct key *session_keyring, int wait) |
95 | { | 95 | { |
96 | return call_usermodehelper_fns(path, argv, envp, wait, | 96 | struct subprocess_info *info; |
97 | umh_keys_init, umh_keys_cleanup, | 97 | |
98 | key_get(session_keyring)); | 98 | info = call_usermodehelper_setup(path, argv, envp, GFP_KERNEL, |
99 | umh_keys_init, umh_keys_cleanup, | ||
100 | session_keyring); | ||
101 | if (!info) | ||
102 | return -ENOMEM; | ||
103 | |||
104 | key_get(session_keyring); | ||
105 | return call_usermodehelper_exec(info, wait); | ||
99 | } | 106 | } |
100 | 107 | ||
101 | /* | 108 | /* |