KEYS: fix in-kernel documentation for keyctl_read()
authorEric Biggers <ebiggers@google.com>
Wed, 15 Nov 2017 16:38:44 +0000 (16:38 +0000)
committerDavid Howells <dhowells@redhat.com>
Wed, 15 Nov 2017 16:38:44 +0000 (16:38 +0000)
When keyctl_read() is passed a buffer that is too small, the behavior is
inconsistent.  Some key types will fill as much of the buffer as
possible, while others won't copy anything.  Moreover, the in-kernel
documentation contradicted the man page on this point.

Update the in-kernel documentation to say that this point is
unspecified.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Documentation/security/keys/core.rst

index 1266eeae45f69caeed72902d2507c3131de9a08f..9ce7256c6edba8b605e9928a42159d717f6d7cf5 100644 (file)
@@ -628,12 +628,12 @@ The keyctl syscall functions are:
      defined key type will return its data as is. If a key type does not
      implement this function, error EOPNOTSUPP will result.
 
-     As much of the data as can be fitted into the buffer will be copied to
-     userspace if the buffer pointer is not NULL.
-
-     On a successful return, the function will always return the amount of data
-     available rather than the amount copied.
+     If the specified buffer is too small, then the size of the buffer required
+     will be returned.  Note that in this case, the contents of the buffer may
+     have been overwritten in some undefined way.
 
+     Otherwise, on success, the function will return the amount of data copied
+     into the buffer.
 
   *  Instantiate a partially constructed key::