]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - security/keys/keyctl.c
KEYS: prevent KEYCTL_READ on negative key
[mirror_ubuntu-artful-kernel.git] / security / keys / keyctl.c
index ab0b337c84b4c02e4856719398edb94d1caf101a..6a82090c7fc1770593bdfe2767632acff4296542 100644 (file)
@@ -766,6 +766,11 @@ long keyctl_read_key(key_serial_t keyid, char __user *buffer, size_t buflen)
 
        key = key_ref_to_ptr(key_ref);
 
+       if (test_bit(KEY_FLAG_NEGATIVE, &key->flags)) {
+               ret = -ENOKEY;
+               goto error2;
+       }
+
        /* see if we can read it directly */
        ret = key_permission(key_ref, KEY_NEED_READ);
        if (ret == 0)