linux-crypto.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* algif_hash bug?
@ 2016-01-08 20:55 Tom Lendacky
  2016-01-09  5:42 ` Herbert Xu
  0 siblings, 1 reply; 3+ messages in thread
From: Tom Lendacky @ 2016-01-08 20:55 UTC (permalink / raw)
  To: Herbert Xu; +Cc: Linux Crypto Mailing List

Herbert,

AF_ALG hash supports the accept() call to allow for partial hash states
to be cloned. If an accept() is issued against a socket before ever
doing a send(), crypto_ahash_init() will never have been called for the
original socket.  The hash_accept function in algif_hash will call
crypto_ahash_export() which will return an uninitialized request context
and then use that for import into the new socket. A problem arises here
because hash_accept sets the 'more' bit of the new context to 1
(ctx2->more = 1). This will cause the first send() call for the new
socket to skip calling crypto_ahash_init() which can result in an
error or oops because the request context for the cloned socket was
never initialized.

Is it assumed that the accept() call should only ever be made after
having issued at least one send()? Should the ctx2->more value be the
value from the original context so that crypto_ahash_init() is called
when needed?

Thanks,
Tom

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-01-09 15:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-08 20:55 algif_hash bug? Tom Lendacky
2016-01-09  5:42 ` Herbert Xu
2016-01-09 15:50   ` Tom Lendacky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).