mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-13 20:33:15 +00:00
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto fixes from Herbert Xu: - crypto API regression that may cause sporadic alloc failures - double-free bug in drbg * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: drbg - set freed buffers to NULL crypto: api - fix finding algorithm currently being tested
This commit is contained in:
commit
6e041ffcc2
11
crypto/api.c
11
crypto/api.c
@ -204,9 +204,14 @@ static struct crypto_alg *crypto_alg_lookup(const char *name, u32 type,
|
||||
|
||||
down_read(&crypto_alg_sem);
|
||||
alg = __crypto_alg_lookup(name, type | test, mask | test);
|
||||
if (!alg && test)
|
||||
alg = __crypto_alg_lookup(name, type, mask) ?
|
||||
ERR_PTR(-ELIBBAD) : NULL;
|
||||
if (!alg && test) {
|
||||
alg = __crypto_alg_lookup(name, type, mask);
|
||||
if (alg && !crypto_is_larval(alg)) {
|
||||
/* Test failed */
|
||||
crypto_mod_put(alg);
|
||||
alg = ERR_PTR(-ELIBBAD);
|
||||
}
|
||||
}
|
||||
up_read(&crypto_alg_sem);
|
||||
|
||||
return alg;
|
||||
|
@ -1134,8 +1134,10 @@ static inline void drbg_dealloc_state(struct drbg_state *drbg)
|
||||
if (!drbg)
|
||||
return;
|
||||
kzfree(drbg->Vbuf);
|
||||
drbg->Vbuf = NULL;
|
||||
drbg->V = NULL;
|
||||
kzfree(drbg->Cbuf);
|
||||
drbg->Cbuf = NULL;
|
||||
drbg->C = NULL;
|
||||
kzfree(drbg->scratchpadbuf);
|
||||
drbg->scratchpadbuf = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user