diff options
Diffstat (limited to 'security/keys/request_key.c')
| -rw-r--r-- | security/keys/request_key.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/security/keys/request_key.c b/security/keys/request_key.c index 8e319a416ee..82465328c39 100644 --- a/security/keys/request_key.c +++ b/security/keys/request_key.c @@ -469,7 +469,7 @@ static struct key *construct_key_and_link(struct key_type *type,  	} else if (ret == -EINPROGRESS) {  		ret = 0;  	} else { -		key = ERR_PTR(ret); +		goto couldnt_alloc_key;  	}  	key_put(dest_keyring); @@ -479,6 +479,7 @@ static struct key *construct_key_and_link(struct key_type *type,  construction_failed:  	key_negate_and_link(key, key_negative_timeout, NULL, NULL);  	key_put(key); +couldnt_alloc_key:  	key_put(dest_keyring);  	kleave(" = %d", ret);  	return ERR_PTR(ret);  |