KEYS: Make request_key() and co. return an error for a negative key
authorDavid Howells <dhowells@redhat.com>
Fri, 11 Mar 2011 17:57:33 +0000 (17:57 +0000)
committerJames Morris <jmorris@namei.org>
Thu, 17 Mar 2011 00:59:49 +0000 (11:59 +1100)
Make request_key() and co. return an error for a negative or rejected key.  If
the key was simply negated, then return ENOKEY, otherwise return the error
with which it was rejected.

Without this patch, the following command returns a key number (with the latest
keyutils):

[root@andromeda ~]# keyctl request2 user debug:foo rejected @s
586569904

Trying to print the key merely gets you a permission denied error:

[root@andromeda ~]# keyctl print 586569904
keyctl_read_alloc: Permission denied

Doing another request_key() call does get you the error, as long as it hasn't
expired yet:

[root@andromeda ~]# keyctl request user debug:foo
request_key: Key was rejected by service

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: James Morris <jmorris@namei.org>

No differences found