From: Antoine Tenart <antoine.tenart@free-electrons.com>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Antoine Tenart <antoine.tenart@free-electrons.com>,
davem@davemloft.net, thomas.petazzoni@free-electrons.com,
gregory.clement@free-electrons.com,
miquel.raynal@free-electrons.com, oferh@marvell.com,
igall@marvell.com, nadavh@marvell.com,
linux-crypto@vger.kernel.org
Subject: Re: [PATCH 3/4] crypto: inside-secure - only update the result buffer when provided
Date: Mon, 11 Dec 2017 08:49:57 +0100 [thread overview]
Message-ID: <20171211074957.GC25616@kwain> (raw)
In-Reply-To: <20171211072946.GA8823@gondor.apana.org.au>
Hi Herbert,
On Mon, Dec 11, 2017 at 06:29:46PM +1100, Herbert Xu wrote:
> On Tue, Nov 28, 2017 at 10:05:17AM +0100, Antoine Tenart wrote:
> >
> > if (sreq->finish)
> > result_sz = crypto_ahash_digestsize(ahash);
> > - memcpy(sreq->state, areq->result, result_sz);
> > +
> > + /* The called isn't required to supply a result buffer. Updated it only
> > + * when provided.
> > + */
> > + if (areq->result)
> > + memcpy(sreq->state, areq->result, result_sz);
>
> I don't think you should use whether areq->result is NULL to
> determine whether to copy data into it. For example, I could
> be making an update call with a non-NULL areq->result and it would
> be completely wrong if you overwrote that with the above memcpy.
>
> IOW areq->result should not be touched at all unless you are doing
> a finalisation.
I didn't know that. It means the SafeXcel driver logic is wrong
regarding this point, as areq->result is DMA mapped and used of all hash
operations (including updates).
So this patch is indeed fixing an issue, which should probably not be
there in the first place. I guess you recommend using a buffer local to
the driver instead, and only update areq->request on completion (final).
Thanks!
Antoine
--
Antoine Ténart, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
next prev parent reply other threads:[~2017-12-11 7:49 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-28 9:05 [PATCH 0/4] crypto: inside-secure - set of fixes Antoine Tenart
2017-11-28 9:05 ` [PATCH 1/4] crypto: inside-secure - per request invalidation Antoine Tenart
2017-11-28 9:14 ` Antoine Tenart
2017-11-28 9:05 ` [PATCH 2/4] crypto: inside-secure - free requests even if their handling failed Antoine Tenart
2017-11-28 9:05 ` [PATCH 3/4] crypto: inside-secure - only update the result buffer when provided Antoine Tenart
2017-12-11 7:29 ` Herbert Xu
2017-12-11 7:49 ` Antoine Tenart [this message]
2017-12-11 11:13 ` Herbert Xu
2017-11-28 9:05 ` [PATCH 4/4] crypto: inside-secure - fix request allocations in invalidation path Antoine Tenart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171211074957.GC25616@kwain \
--to=antoine.tenart@free-electrons.com \
--cc=davem@davemloft.net \
--cc=gregory.clement@free-electrons.com \
--cc=herbert@gondor.apana.org.au \
--cc=igall@marvell.com \
--cc=linux-crypto@vger.kernel.org \
--cc=miquel.raynal@free-electrons.com \
--cc=nadavh@marvell.com \
--cc=oferh@marvell.com \
--cc=thomas.petazzoni@free-electrons.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.