diff options
author | David Howells <dhowells@redhat.com> | 2012-05-21 07:32:13 -0400 |
---|---|---|
committer | James Morris <james.l.morris@oracle.com> | 2012-05-25 06:51:42 -0400 |
commit | 423b9788023263364ea5de04189f02bd9b6a12db (patch) | |
tree | fc3ee4814aa8322fb2abb01c50d96568aa51bd9b /security/keys/keyring.c | |
parent | ff2bb047c4bce9742e94911eeb44b4d6ff4734ab (diff) |
KEYS: Fix some sparse warnings
Fix some sparse warnings in the keyrings code:
(1) compat_keyctl_instantiate_key_iov() should be static.
(2) There were a couple of places where a pointer was being compared against
integer 0 rather than NULL.
(3) keyctl_instantiate_key_common() should not take a __user-labelled iovec
pointer as the caller must have copied the iovec to kernel space.
(4) __key_link_begin() takes and __key_link_end() releases
keyring_serialise_link_sem under some circumstances and so this should be
declared.
Note that adding __acquires() and __releases() for this doesn't help cure
the warnings messages - something only commenting out both helps.
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: James Morris <james.l.morris@oracle.com>
Diffstat (limited to 'security/keys/keyring.c')
-rw-r--r-- | security/keys/keyring.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/security/keys/keyring.c b/security/keys/keyring.c index 7445875f681..81e7852d281 100644 --- a/security/keys/keyring.c +++ b/security/keys/keyring.c | |||
@@ -751,6 +751,7 @@ static void keyring_unlink_rcu_disposal(struct rcu_head *rcu) | |||
751 | int __key_link_begin(struct key *keyring, const struct key_type *type, | 751 | int __key_link_begin(struct key *keyring, const struct key_type *type, |
752 | const char *description, unsigned long *_prealloc) | 752 | const char *description, unsigned long *_prealloc) |
753 | __acquires(&keyring->sem) | 753 | __acquires(&keyring->sem) |
754 | __acquires(&keyring_serialise_link_sem) | ||
754 | { | 755 | { |
755 | struct keyring_list *klist, *nklist; | 756 | struct keyring_list *klist, *nklist; |
756 | unsigned long prealloc; | 757 | unsigned long prealloc; |
@@ -960,6 +961,7 @@ void __key_link(struct key *keyring, struct key *key, | |||
960 | void __key_link_end(struct key *keyring, struct key_type *type, | 961 | void __key_link_end(struct key *keyring, struct key_type *type, |
961 | unsigned long prealloc) | 962 | unsigned long prealloc) |
962 | __releases(&keyring->sem) | 963 | __releases(&keyring->sem) |
964 | __releases(&keyring_serialise_link_sem) | ||
963 | { | 965 | { |
964 | BUG_ON(type == NULL); | 966 | BUG_ON(type == NULL); |
965 | BUG_ON(type->name == NULL); | 967 | BUG_ON(type->name == NULL); |