KEYS: Reinstate lost passing of process keyring ID in call_sbin_request_key()
Justin P. Mattock [Wed, 30 Jun 2010 09:39:11 +0000 (10:39 +0100)]
In commit bb952bb98a7e479262c7eb25d5592545a3af147d there was the accidental
deletion of a statement from call_sbin_request_key() to render the process
keyring ID to a text string so that it can be passed to /sbin/request-key.

With gcc 4.6.0 this causes the following warning:

CC security/keys/request_key.o
security/keys/request_key.c: In function 'call_sbin_request_key':
security/keys/request_key.c:102:15: warning: variable 'prkey' set but not used

This patch reinstates that statement.

Without this statement, /sbin/request-key will get some random rubbish from the
stack as that parameter.

Signed-off-by: Justin P. Mattock <justinmattock@gmail.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: James Morris <jmorris@namei.org>

security/keys/request_key.c

index f5ec9ac..0d26f68 100644 (file)
@@ -144,6 +144,7 @@ static int call_sbin_request_key(struct key_construction *cons,
        prkey = 0;
        if (cred->tgcred->process_keyring)
                prkey = cred->tgcred->process_keyring->serial;
+       sprintf(keyring_str[1], "%d", prkey);
 
        rcu_read_lock();
        session = rcu_dereference(cred->tgcred->session_keyring);