|
@@ -131,14 +131,14 @@ struct subprocess_info {
|
|
|
static int ____call_usermodehelper(void *data)
|
|
|
{
|
|
|
struct subprocess_info *sub_info = data;
|
|
|
- struct key *old_session;
|
|
|
+ struct key *new_session, *old_session;
|
|
|
int retval;
|
|
|
|
|
|
/* Unblock all signals and set the session keyring. */
|
|
|
- key_get(sub_info->ring);
|
|
|
+ new_session = key_get(sub_info->ring);
|
|
|
flush_signals(current);
|
|
|
spin_lock_irq(¤t->sighand->siglock);
|
|
|
- old_session = __install_session_keyring(current, sub_info->ring);
|
|
|
+ old_session = __install_session_keyring(current, new_session);
|
|
|
flush_signal_handlers(current, 1);
|
|
|
sigemptyset(¤t->blocked);
|
|
|
recalc_sigpending();
|