From 9526c2b7fb512bff3ee1cd2188fd9d1f13948796 Mon Sep 17 00:00:00 2001 From: David Howells Date: Thu, 9 Apr 2009 17:14:05 +0100 Subject: [PATCH] --- yaml --- r: 142931 b: refs/heads/master c: 34574dd10b6d0697b86703388d6d6af9cbf4bb48 h: refs/heads/master i: 142929: 5a33797b6362b905750ee65b5a91f21732b67f80 142927: 4b5f7b01d1c97d82f01eab496c340899ea888675 v: v3 --- [refs] | 2 +- trunk/security/keys/request_key.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 01a2d50de654..fa750a89cb5e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 11ff5f6affe9b75f115a900a5584db339d46002b +refs/heads/master: 34574dd10b6d0697b86703388d6d6af9cbf4bb48 diff --git a/trunk/security/keys/request_key.c b/trunk/security/keys/request_key.c index 22a31582bfaa..03fe63ed55bd 100644 --- a/trunk/security/keys/request_key.c +++ b/trunk/security/keys/request_key.c @@ -311,7 +311,8 @@ static int construct_alloc_key(struct key_type *type, set_bit(KEY_FLAG_USER_CONSTRUCT, &key->flags); - down_write(&dest_keyring->sem); + if (dest_keyring) + down_write(&dest_keyring->sem); /* attach the key to the destination keyring under lock, but we do need * to do another check just in case someone beat us to it whilst we @@ -322,10 +323,12 @@ static int construct_alloc_key(struct key_type *type, if (!IS_ERR(key_ref)) goto key_already_present; - __key_link(dest_keyring, key); + if (dest_keyring) + __key_link(dest_keyring, key); mutex_unlock(&key_construction_mutex); - up_write(&dest_keyring->sem); + if (dest_keyring) + up_write(&dest_keyring->sem); mutex_unlock(&user->cons_lock); *_key = key; kleave(" = 0 [%d]", key_serial(key));