Pull keyrings fixes from David Howells: "Here's a couple of patches that fix a circular dependency between holding key->sem and mm->mmap_sem when reading data from a key. One potential issue is that a filesystem looking to use a key inside, say, ->readpages() could deadlock if the key being read is the key that's required and the buffer the key is being read into is on a page that needs to be fetched. The case actually detected is a bit more involved - with a filesystem calling request_key() and locking the target keyring for write - which could be being read" * tag 'keys-fixes-20200329' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs: KEYS: Avoid false positive ENOMEM error on key read KEYS: Don't write out to userspace while holding key semaphore
Showing the changes to include/linux (1 of 13 files). Show all
Unified · Split
| @@ -127,7 +127,7 @@ struct key_type { · 126 unmodified lines | ||
| 127 | 127 | * much is copied into the buffer |
| 128 | 128 | * - shouldn't do the copy if the buffer is NULL |
| 129 | 129 | */ |
| 130 | − long (*read)(const struct key *key, char __user *buffer, size_t buflen); | |
| 130 | + long (*read)(const struct key *key, char *buffer, size_t buflen); | |
| 131 | 131 | |
| 132 | 132 | /* handle request_key() for this type instead of invoking |
| 133 | 133 | * /sbin/request-key (optional) |