diff options
author | Ingo Molnar | 2017-10-24 13:17:20 +0200 |
---|---|---|
committer | Ingo Molnar | 2017-10-24 13:17:20 +0200 |
commit | 9babb091e0ec84f7503fde0a2d9a2a16a0f48e3c (patch) | |
tree | 9b6f07288b9ca9d8444414cd7da291d7c4731da7 /security/keys/permission.c | |
parent | locking/static_keys: Improve uninitialized key warning (diff) | |
parent | Linux 4.14-rc6 (diff) | |
download | kernel-qcow2-linux-9babb091e0ec84f7503fde0a2d9a2a16a0f48e3c.tar.gz kernel-qcow2-linux-9babb091e0ec84f7503fde0a2d9a2a16a0f48e3c.tar.xz kernel-qcow2-linux-9babb091e0ec84f7503fde0a2d9a2a16a0f48e3c.zip |
Merge tag 'v4.14-rc6' into locking/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'security/keys/permission.c')
-rw-r--r-- | security/keys/permission.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/security/keys/permission.c b/security/keys/permission.c index 732cc0beffdf..a72b4dd70c8a 100644 --- a/security/keys/permission.c +++ b/security/keys/permission.c @@ -88,7 +88,8 @@ EXPORT_SYMBOL(key_task_permission); */ int key_validate(const struct key *key) { - unsigned long flags = key->flags; + unsigned long flags = READ_ONCE(key->flags); + time_t expiry = READ_ONCE(key->expiry); if (flags & (1 << KEY_FLAG_INVALIDATED)) return -ENOKEY; @@ -99,9 +100,9 @@ int key_validate(const struct key *key) return -EKEYREVOKED; /* check it hasn't expired */ - if (key->expiry) { + if (expiry) { struct timespec now = current_kernel_time(); - if (now.tv_sec >= key->expiry) + if (now.tv_sec >= expiry) return -EKEYEXPIRED; } |