crypto: mv_cesa - ensure backlog is initialised
authorColin Ian King <colin.king@canonical.com>
Tue, 14 Apr 2015 16:51:29 +0000 (11:51 -0500)
committerHerbert Xu <herbert@gondor.apana.org.au>
Tue, 21 Apr 2015 01:14:38 +0000 (09:14 +0800)
backlog is not initialised so in the case where
cpg->eng_st != ENGINE_IDLE it is never initialised and
hence which could lead to an illegal memory dereference
in the statement:

  backlog->complete(backlog, -EINPROGRESS);

Discovered with cppcheck static analsys:
[drivers/crypto/mv_cesa.c:616]:
   (error) Uninitialized variable: backlog

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/mv_cesa.c

index f91f15ddee926ffeb7d470d3823f699194bc9d40..e63efbd840b5c962085dfaace2c889c8efa11796 100644 (file)
@@ -595,7 +595,7 @@ static int queue_manag(void *data)
        cpg->eng_st = ENGINE_IDLE;
        do {
                struct crypto_async_request *async_req = NULL;
-               struct crypto_async_request *backlog;
+               struct crypto_async_request *backlog = NULL;
 
                __set_current_state(TASK_INTERRUPTIBLE);