If the scratch allocation fails, all subsequent allocations will
silently succeed without actually allocating anything. Fix this
by only incrementing users when the allocation succeeds.
Fixes:
6a8487a1f29f ("crypto: scompress - defer allocation of scratch buffer to first use")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
if (ret)
goto unlock;
}
- if (!scomp_scratch_users++)
+ if (!scomp_scratch_users) {
ret = crypto_scomp_alloc_scratches();
+ if (ret)
+ goto unlock;
+ scomp_scratch_users++;
+ }
unlock:
mutex_unlock(&scomp_lock);