* Re: [PATCH 4/4] crypto: Documentation: fix none signal safe sample [not found] ` <1494503626-15877-5-git-send-email-gilad@benyossef.com> @ 2017-05-16 22:41 ` Eric Biggers 0 siblings, 0 replies; 4+ messages in thread From: Eric Biggers @ 2017-05-16 22:41 UTC (permalink / raw) To: Gilad Ben-Yossef Cc: Herbert Xu, David S. Miller, Jonathan Corbet, David Howells, Ofir Drang, Gilad Ben-Yossef, linux-crypto, linux-doc, linux-kernel, keyrings On Thu, May 11, 2017 at 02:53:45PM +0300, Gilad Ben-Yossef wrote: > The sample code was showing use of wait_for_completion_interruptible() > for waiting for an async. crypto op to finish. However, if a signal > arrived it would free the buffers used even while crypto HW might > still DMA from/into the buffers. > > Resolve this by using wait_for_completion() instead. > > Reported-by: Eric Biggers <ebiggers3@gmail.com> > Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com> > --- > Documentation/crypto/api-samples.rst | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/Documentation/crypto/api-samples.rst b/Documentation/crypto/api-samples.rst > index d021fd9..944f08b 100644 > --- a/Documentation/crypto/api-samples.rst > +++ b/Documentation/crypto/api-samples.rst > @@ -48,7 +48,7 @@ Code Example For Symmetric Key Cipher Operation > break; > case -EINPROGRESS: > case -EBUSY: > - rc = wait_for_completion_interruptible( > + rc = wait_for_completion( > &sk->result.completion); > if (!rc && !sk->result.err) { > reinit_completion(&sk->result.completion); > -- > 2.1.4 > Same issue here: wait_for_completion() doesn't return a value. Eric ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <1494503626-15877-3-git-send-email-gilad@benyossef.com>]
* Re: [PATCH 2/4] crypto: drbg wait for crypto op not signal safe [not found] ` <1494503626-15877-3-git-send-email-gilad@benyossef.com> @ 2017-05-16 22:39 ` Eric Biggers 2017-05-18 5:09 ` Herbert Xu 1 sibling, 0 replies; 4+ messages in thread From: Eric Biggers @ 2017-05-16 22:39 UTC (permalink / raw) To: Gilad Ben-Yossef Cc: Herbert Xu, David S. Miller, Jonathan Corbet, David Howells, Ofir Drang, Gilad Ben-Yossef, stable, linux-crypto, linux-doc, linux-kernel, keyrings Hi Gilad, On Thu, May 11, 2017 at 02:53:43PM +0300, Gilad Ben-Yossef wrote: > drbg_kcapi_sym_ctr() was using wait_for_completion_interruptible() to > wait for completion of async crypto op but if a signal occurs it > may return before DMA ops of HW crypto provider finish, thus > corrupting the output buffer. > > Resolve this by using wait_for_completion() instead. > > Reported-by: Eric Biggers <ebiggers3@gmail.com> > Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com> > CC: stable@vger.kernel.org > --- > crypto/drbg.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/crypto/drbg.c b/crypto/drbg.c > index fa749f4..fa9054d 100644 > --- a/crypto/drbg.c > +++ b/crypto/drbg.c > @@ -1767,8 +1767,7 @@ static int drbg_kcapi_sym_ctr(struct drbg_state *drbg, > break; > case -EINPROGRESS: > case -EBUSY: > - ret = wait_for_completion_interruptible( > - &drbg->ctr_completion); > + ret = wait_for_completion(&drbg->ctr_completion); > if (!ret && !drbg->ctr_async_err) { > reinit_completion(&drbg->ctr_completion); > break; > -- wait_for_completion() doesn't return a value. This was fixed in the next patch, but it should be done in this patch. Eric ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/4] crypto: drbg wait for crypto op not signal safe [not found] ` <1494503626-15877-3-git-send-email-gilad@benyossef.com> 2017-05-16 22:39 ` [PATCH 2/4] crypto: drbg wait for crypto op not signal safe Eric Biggers @ 2017-05-18 5:09 ` Herbert Xu 2017-05-18 9:23 ` Gilad Ben-Yossef 1 sibling, 1 reply; 4+ messages in thread From: Herbert Xu @ 2017-05-18 5:09 UTC (permalink / raw) To: Gilad Ben-Yossef Cc: David S. Miller, Jonathan Corbet, David Howells, Ofir Drang, Gilad Ben-Yossef, Eric Biggers, stable, linux-crypto, linux-doc, linux-kernel, keyrings On Thu, May 11, 2017 at 02:53:43PM +0300, Gilad Ben-Yossef wrote: > drbg_kcapi_sym_ctr() was using wait_for_completion_interruptible() to > wait for completion of async crypto op but if a signal occurs it > may return before DMA ops of HW crypto provider finish, thus > corrupting the output buffer. > > Resolve this by using wait_for_completion() instead. > > Reported-by: Eric Biggers <ebiggers3@gmail.com> > Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com> > CC: stable@vger.kernel.org This patch doesn't even compile. Please test your work first. Thanks, -- Email: Herbert Xu <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/4] crypto: drbg wait for crypto op not signal safe 2017-05-18 5:09 ` Herbert Xu @ 2017-05-18 9:23 ` Gilad Ben-Yossef 0 siblings, 0 replies; 4+ messages in thread From: Gilad Ben-Yossef @ 2017-05-18 9:23 UTC (permalink / raw) To: Herbert Xu Cc: David S. Miller, Jonathan Corbet, David Howells, Ofir Drang, Gilad Ben-Yossef, Eric Biggers, stable, linux-crypto, linux-doc, Linux kernel mailing list, keyrings On Thu, May 18, 2017 at 8:09 AM, Herbert Xu <herbert@gondor.apana.org.au> wrote: > On Thu, May 11, 2017 at 02:53:43PM +0300, Gilad Ben-Yossef wrote: >> drbg_kcapi_sym_ctr() was using wait_for_completion_interruptible() to >> wait for completion of async crypto op but if a signal occurs it >> may return before DMA ops of HW crypto provider finish, thus >> corrupting the output buffer. >> >> Resolve this by using wait_for_completion() instead. >> >> Reported-by: Eric Biggers <ebiggers3@gmail.com> >> Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com> >> CC: stable@vger.kernel.org > > This patch doesn't even compile. Please test your work first. Sigh... I've noticed it, fixed it, compiled it and than went ahead and squashed the fix with the next patch in series instead of this one like an idiot. Please accept my apologies for wasting your time. I'll send a fixed version. Gilad > > Thanks, > -- > Email: Herbert Xu <herbert@gondor.apana.org.au> > Home Page: http://gondor.apana.org.au/~herbert/ > PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- Gilad Ben-Yossef Chief Coffee Drinker "If you take a class in large-scale robotics, can you end up in a situation where the homework eats your dog?" -- Jean-Baptiste Queru ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-05-18 9:23 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1494503626-15877-1-git-send-email-gilad@benyossef.com>
[not found] ` <1494503626-15877-5-git-send-email-gilad@benyossef.com>
2017-05-16 22:41 ` [PATCH 4/4] crypto: Documentation: fix none signal safe sample Eric Biggers
[not found] ` <1494503626-15877-3-git-send-email-gilad@benyossef.com>
2017-05-16 22:39 ` [PATCH 2/4] crypto: drbg wait for crypto op not signal safe Eric Biggers
2017-05-18 5:09 ` Herbert Xu
2017-05-18 9:23 ` Gilad Ben-Yossef
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox