From: Eric Biggers <ebiggers@kernel.org>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: linux-crypto@vger.kernel.org, Neil Horman <nhorman@tuxdriver.com>,
Corentin Labbe <clabbe@baylibre.com>,
stable@vger.kernel.org
Subject: Re: [PATCH] crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS
Date: Sun, 21 Mar 2021 23:00:09 -0700 [thread overview]
Message-ID: <YFgyaeeY6k6Pltw7@sol.localdomain> (raw)
In-Reply-To: <20210322054522.GC1667@kadam>
On Mon, Mar 22, 2021 at 08:45:22AM +0300, Dan Carpenter wrote:
> On Sun, Mar 21, 2021 at 10:07:48PM -0700, Eric Biggers wrote:
> > From: Eric Biggers <ebiggers@google.com>
> >
> > crypto_stats_get() is a no-op when the kernel is compiled without
> > CONFIG_CRYPTO_STATS, so pairing it with crypto_alg_put() unconditionally
> > (as crypto_rng_reset() does) is wrong.
> >
>
> Presumably the intention was that _get() and _put() should always pair.
> It's really ugly and horrible that they don't. We could have
> predicted bug like this would happen and will continue to happen until
> the crypto_stats_get() is renamed.
>
Well, the crypto stats stuff has always been pretty broken, so I don't think
people have looked at it too closely. Currently crypto_stats_get() pairs with
one of the functions that tallies the statistics, such as
crypto_stats_rng_seed() or crypto_stats_aead_encrypt(). What change are you
suggesting, exactly? Maybe moving the conditional crypto_alg_put() into a new
function crypto_stats_put() and moving it into the callers? Or do you think the
functions should just be renamed to something like crypto_stats_begin() and
crypto_stats_end_{rng_seed,aead_encrypt}()?
Another issue is that a lot of operations (such as the rng one in question here)
don't actually need the get/put at all because they are never asynchronous. I
didn't aim to address that in my patch though...
- Eric
next prev parent reply other threads:[~2021-03-22 6:01 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-22 5:07 [PATCH] crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS Eric Biggers
2021-03-22 5:45 ` Dan Carpenter
2021-03-22 6:00 ` Eric Biggers [this message]
2021-03-22 7:33 ` Dan Carpenter
2021-03-22 12:13 ` LABBE Corentin
2021-04-02 9:03 ` Herbert Xu
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=YFgyaeeY6k6Pltw7@sol.localdomain \
--to=ebiggers@kernel.org \
--cc=clabbe@baylibre.com \
--cc=dan.carpenter@oracle.com \
--cc=linux-crypto@vger.kernel.org \
--cc=nhorman@tuxdriver.com \
--cc=stable@vger.kernel.org \
/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.