On Thu, Dec 06, 2018 at 03:55:41PM -0800, Eric Biggers wrote: > From: Eric Biggers <ebiggers@xxxxxxxxxx> > > 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@xxxxxxxxxx> > --- > crypto/crypto_user_base.c | 37 ++++++++++++++++++++----------------- > 1 file changed, 20 insertions(+), 17 deletions(-) Patch applied. Thanks. -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt