diff options
author | Ingo Molnar <mingo@kernel.org> | 2016-01-06 05:02:29 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-01-06 05:02:29 -0500 |
commit | 567bee2803cb46caeb6011de5b738fde33dc3896 (patch) | |
tree | 05bab01377bffa356bfbe06c4b6193b23b7c24ca /security/keys/keyctl.c | |
parent | aa0b7ae06387d40a988ce16a189082dee6e570bc (diff) | |
parent | 093e5840ae76f1082633503964d035f40ed0216d (diff) |
Merge branch 'sched/urgent' into sched/core, to pick up fixes before merging new patches
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'security/keys/keyctl.c')
-rw-r--r-- | security/keys/keyctl.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c index fb111eafcb89..1c3872aeed14 100644 --- a/security/keys/keyctl.c +++ b/security/keys/keyctl.c | |||
@@ -751,16 +751,16 @@ long keyctl_read_key(key_serial_t keyid, char __user *buffer, size_t buflen) | |||
751 | 751 | ||
752 | /* the key is probably readable - now try to read it */ | 752 | /* the key is probably readable - now try to read it */ |
753 | can_read_key: | 753 | can_read_key: |
754 | ret = key_validate(key); | 754 | ret = -EOPNOTSUPP; |
755 | if (ret == 0) { | 755 | if (key->type->read) { |
756 | ret = -EOPNOTSUPP; | 756 | /* Read the data with the semaphore held (since we might sleep) |
757 | if (key->type->read) { | 757 | * to protect against the key being updated or revoked. |
758 | /* read the data with the semaphore held (since we | 758 | */ |
759 | * might sleep) */ | 759 | down_read(&key->sem); |
760 | down_read(&key->sem); | 760 | ret = key_validate(key); |
761 | if (ret == 0) | ||
761 | ret = key->type->read(key, buffer, buflen); | 762 | ret = key->type->read(key, buffer, buflen); |
762 | up_read(&key->sem); | 763 | up_read(&key->sem); |
763 | } | ||
764 | } | 764 | } |
765 | 765 | ||
766 | error2: | 766 | error2: |