diff options
author | Dan Carpenter <error27@gmail.com> | 2010-06-11 17:30:05 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-06-27 07:02:34 -0700 |
commit | 4303ef19c6e6d16ea845c04b02b9cf086bcb8ed7 (patch) | |
tree | 83e649d3b9d3583c7576920a0feb08e38a19d1b5 /security/keys | |
parent | 7e27d6e778cd87b6f2415515d7127eba53fe5d02 (diff) | |
download | linux-3.10-4303ef19c6e6d16ea845c04b02b9cf086bcb8ed7.tar.gz linux-3.10-4303ef19c6e6d16ea845c04b02b9cf086bcb8ed7.tar.bz2 linux-3.10-4303ef19c6e6d16ea845c04b02b9cf086bcb8ed7.zip |
KEYS: Propagate error code instead of returning -EINVAL
This is from a Smatch check I'm writing.
strncpy_from_user() returns -EFAULT on error so the first change just
silences a warning but doesn't change how the code works.
The other change is a bug fix because install_thread_keyring_to_cred()
can return a variety of errors such as -EINVAL, -EEXIST, -ENOMEM or
-EKEYREVOKED.
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'security/keys')
-rw-r--r-- | security/keys/keyctl.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c index 13074b45474..6261745e445 100644 --- a/security/keys/keyctl.c +++ b/security/keys/keyctl.c @@ -33,7 +33,7 @@ static int key_get_type_from_user(char *type, ret = strncpy_from_user(type, _type, len); if (ret < 0) - return -EFAULT; + return ret; if (ret == 0 || ret >= len) return -EINVAL; @@ -1080,7 +1080,7 @@ set: return old_setting; error: abort_creds(new); - return -EINVAL; + return ret; } /* end keyctl_set_reqkey_keyring() */ |