]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
crypto: ccp - avoid uninitialized variable warning
authorArnd Bergmann <arnd@arndb.de>
Mon, 31 Jul 2017 20:49:21 +0000 (22:49 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 9 Aug 2017 12:17:58 +0000 (20:17 +0800)
The added support for version 5 CCPs introduced a false-positive
warning in the RSA implementation:

drivers/crypto/ccp/ccp-ops.c: In function 'ccp_run_rsa_cmd':
drivers/crypto/ccp/ccp-ops.c:1856:3: error: 'sb_count' may be used uninitialized in this function [-Werror=maybe-uninitialized]

This changes the code in a way that should make it easier for
the compiler to track the state of the sb_count variable, and
avoid the warning.

Fixes: 6ba46c7d4d7e ("crypto: ccp - Fix base RSA function for version 5 CCPs")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Gary R Hook <gary.hook@amd.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/ccp/ccp-ops.c

index cc16cb0fc3af4340c049755f84185a09cc961e59..804924e48c898dd425ea413e3eaef6ba5757107d 100644 (file)
@@ -1785,6 +1785,7 @@ static int ccp_run_rsa_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
        o_len = 32 * ((rsa->key_size + 255) / 256);
        i_len = o_len * 2;
 
+       sb_count = 0;
        if (cmd_q->ccp->vdata->version < CCP_VERSION(5, 0)) {
                /* sb_count is the number of storage block slots required
                 * for the modulus.
@@ -1879,7 +1880,7 @@ static int ccp_run_rsa_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
        ccp_dm_free(&exp);
 
 e_sb:
-       if (cmd_q->ccp->vdata->version < CCP_VERSION(5, 0))
+       if (sb_count)
                cmd_q->ccp->vdata->perform->sbfree(cmd_q, op.sb_key, sb_count);
 
        return ret;