Message ID | 20161028180824.7110-1-colin.king@canonical.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Johannes Berg |
Headers | show |
On Fri, 2016-10-28 at 19:08 +0100, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > The current exit path when tmp fails to be allocated is via the > fail label which frees tfm2 which has not yet been allocated, > which is problematic since tfm2 is not initialized and is a garbage > pointer. Fix this by exiting directly to the return at the end > of the function and hence avoiding the freeing of tfm2. Yeah, thanks. Arnd beat you to the fix by about 8 hours, so I've already applied his patch and sent an updated pull request :) johannes
diff --git a/net/mac80211/fils_aead.c b/net/mac80211/fils_aead.c index b81b4f24..c114737 100644 --- a/net/mac80211/fils_aead.c +++ b/net/mac80211/fils_aead.c @@ -112,7 +112,7 @@ static int aes_siv_encrypt(const u8 *key, size_t key_len, tmp = kmemdup(plain, plain_len, GFP_KERNEL); if (!tmp) { res = -ENOMEM; - goto fail; + goto fail_ret; } /* IV for CTR before encrypted data */ @@ -150,6 +150,7 @@ static int aes_siv_encrypt(const u8 *key, size_t key_len, fail: kfree(tmp); crypto_free_skcipher(tfm2); +fail_ret: return res; }