summaryrefslogtreecommitdiffstats
path: root/crypto/adiantum.c
diff options
context:
space:
mode:
authorEric Biggers2018-12-07 00:55:41 +0100
committerHerbert Xu2018-12-13 11:24:59 +0100
commit0ac6b8fb23c724b015d9ca70a89126e8d1563166 (patch)
treeed59c82594a57217ce411dec12cebe049fa78f8b /crypto/adiantum.c
parentcrypto: adiantum - adjust some comments to match latest paper (diff)
downloadkernel-qcow2-linux-0ac6b8fb23c724b015d9ca70a89126e8d1563166.tar.gz
kernel-qcow2-linux-0ac6b8fb23c724b015d9ca70a89126e8d1563166.tar.xz
kernel-qcow2-linux-0ac6b8fb23c724b015d9ca70a89126e8d1563166.zip
crypto: user - support incremental algorithm dumps
CRYPTO_MSG_GETALG in NLM_F_DUMP mode sometimes doesn't return all registered crypto algorithms, because it doesn't support incremental dumps. crypto_dump_report() only permits itself to be called once, yet the netlink subsystem allocates at most ~64 KiB for the skb being dumped to. Thus only the first recvmsg() returns data, and it may only include a subset of the crypto algorithms even if the user buffer passed to recvmsg() is large enough to hold all of them. Fix this by using one of the arguments in the netlink_callback structure to keep track of the current position in the algorithm list. Then userspace can do multiple recvmsg() on the socket after sending the dump request. This is the way netlink dumps work elsewhere in the kernel; it's unclear why this was different (probably just an oversight). Also fix an integer overflow when calculating the dump buffer size hint. Fixes: a38f7907b926 ("crypto: Add userspace configuration API") Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/adiantum.c')
0 files changed, 0 insertions, 0 deletions