summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorJonathan Corbet <corbet@lwn.net>2011-11-01 23:15:16 +0100
committerHerbert Xu <herbert@gondor.apana.org.au>2011-11-01 23:15:16 +0100
commitfb223c32b4d3ee593c8dce07e983680d06abe387 (patch)
tree80b88c2adde46fdd5608989929d54bddf38b513a /crypto
parentcrypto: user - Depend on NET instead of selecting it (diff)
downloadlinux-fb223c32b4d3ee593c8dce07e983680d06abe387.tar.xz
linux-fb223c32b4d3ee593c8dce07e983680d06abe387.zip
crypto: user - Fix rwsem leak in crypto_user
The list_empty case in crypto_alg_match() will return without calling up_read() on crypto_alg_sem. We could do the "goto out" routine, but the function will clearly do the right thing with that test simply removed. Signed-off-by: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/crypto_user.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/crypto/crypto_user.c b/crypto/crypto_user.c
index 2abca780312d..0605a2bbba75 100644
--- a/crypto/crypto_user.c
+++ b/crypto/crypto_user.c
@@ -44,9 +44,6 @@ static struct crypto_alg *crypto_alg_match(struct crypto_user_alg *p, int exact)
down_read(&crypto_alg_sem);
- if (list_empty(&crypto_alg_list))
- return NULL;
-
list_for_each_entry(q, &crypto_alg_list, cra_list) {
int match = 0;