diff --git a/security/keys/process_keys.c b/security/keys/process_keys.c
index 42defae1e161632e93b13b8194af1a30a09f2492..cd871dc8b7c0df40284abf2a1ee902698adddcdc 100644
--- a/security/keys/process_keys.c
+++ b/security/keys/process_keys.c
@@ -792,6 +792,7 @@ long join_session_keyring(const char *name)
 		ret = PTR_ERR(keyring);
 		goto error2;
 	} else if (keyring == new->session_keyring) {
+		key_put(keyring);
 		ret = 0;
 		goto error2;
 	}