mac80211: fils_aead: fix encrypt error handling
authorArnd Bergmann <arnd@arndb.de>
Fri, 28 Oct 2016 10:25:53 +0000 (12:25 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 28 Oct 2016 10:59:12 +0000 (12:59 +0200)
gcc -Wmaybe-uninitialized reports a bug in aes_siv_encryp:

net/mac80211/fils_aead.c: In function ‘aes_siv_encrypt.constprop’:
net/mac80211/fils_aead.c:84:26: error: ‘tfm2’ may be used uninitialized in this function [-Werror=maybe-uninitialized]

At the time that the memory allocation fails, 'tfm2' has not been
allocated, so we should not attempt to free it later, and we can
simply return an error.

Fixes: 39404feee691 ("mac80211: FILS AEAD protection for station mode association frames")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/fils_aead.c

index b81b4f2..ecfdd97 100644 (file)
@@ -110,10 +110,8 @@ static int aes_siv_encrypt(const u8 *key, size_t key_len,
         * overwriting this during AES-CTR.
         */
        tmp = kmemdup(plain, plain_len, GFP_KERNEL);
-       if (!tmp) {
-               res = -ENOMEM;
-               goto fail;
-       }
+       if (!tmp)
+               return -ENOMEM;
 
        /* IV for CTR before encrypted data */
        memcpy(out, v, AES_BLOCK_SIZE);