tipc: fix update of the uninitialized variable err
authorColin Ian King <colin.king@canonical.com>
Mon, 11 Nov 2019 12:33:34 +0000 (12:33 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 12 Nov 2019 06:04:03 +0000 (22:04 -0800)
Variable err is not uninitialized and hence can potentially contain
any garbage value.  This may cause an error when logical or'ing the
return values from the calls to functions crypto_aead_setauthsize or
crypto_aead_setkey.  Fix this by setting err to the return of
crypto_aead_setauthsize rather than or'ing in the return into the
uninitialized variable

Addresses-Coverity: ("Uninitialized scalar variable")
Fixes: fc1b6d6de220 ("tipc: introduce TIPC encryption & authentication")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/crypto.c

index 05f7ca7..990a872 100644 (file)
@@ -463,7 +463,7 @@ static int tipc_aead_init(struct tipc_aead **aead, struct tipc_aead_key *ukey,
                        break;
                }
 
-               err |= crypto_aead_setauthsize(tfm, TIPC_AES_GCM_TAG_SIZE);
+               err = crypto_aead_setauthsize(tfm, TIPC_AES_GCM_TAG_SIZE);
                err |= crypto_aead_setkey(tfm, ukey->key, keylen);
                if (unlikely(err)) {
                        crypto_free_aead(tfm);