diff options
| author | Adrian-Ken Rueegsegger <rueegsegger@swiss-it.ch> | 2009-02-05 16:19:31 +1100 | 
|---|---|---|
| committer | Herbert Xu <herbert@gondor.apana.org.au> | 2009-02-05 16:19:31 +1100 | 
| commit | 4abfd73e34e7915e62b6f75bd3e9f4014f830910 (patch) | |
| tree | c22b49cfe64dbb065df97eb4dc1e9e437bdafbb6 /crypto | |
| parent | b8e15992b420d09dae831125a623c474c8637cee (diff) | |
| download | linux-4abfd73e34e7915e62b6f75bd3e9f4014f830910.tar.bz2 | |
crypto: shash - Fix module refcount
Module reference counting for shash is incorrect: when
a new shash transformation is created the refcount is not
increased as it should.
Signed-off-by: Adrian-Ken Rueegsegger <rueegsegger@swiss-it.ch>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
| -rw-r--r-- | crypto/shash.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/crypto/shash.c b/crypto/shash.c index c9df367332ff..d5a2b619c55f 100644 --- a/crypto/shash.c +++ b/crypto/shash.c @@ -388,10 +388,15 @@ static int crypto_init_shash_ops_compat(struct crypto_tfm *tfm)  	struct shash_desc *desc = crypto_tfm_ctx(tfm);  	struct crypto_shash *shash; +	if (!crypto_mod_get(calg)) +		return -EAGAIN; +  	shash = __crypto_shash_cast(crypto_create_tfm(  		calg, &crypto_shash_type)); -	if (IS_ERR(shash)) +	if (IS_ERR(shash)) { +		crypto_mod_put(calg);  		return PTR_ERR(shash); +	}  	desc->tfm = shash;  	tfm->exit = crypto_exit_shash_ops_compat;  |