Subject: CVE-2021-47017: ath10k: Fix a use after free in ath10k_htc_send_bundle

From: Greg Kroah-Hartman <[email-masked]>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

ath10k: Fix a use after free in ath10k_htc_send_bundle

In ath10k_htc_send_bundle, the bundle_skb could be freed by
dev_kfree_skb_any(bundle_skb). But the bundle_skb is used later
by bundle_skb->len.

As skb_len = bundle_skb->len, my patch replaces bundle_skb->len to
skb_len after the bundle_skb was freed.

The Linux kernel CVE team has assigned CVE-2021-47017 to this issue.

Affected and fixed versions
===========================

	Issue introduced in 5.8 with commit c8334512f3dd and fixed in 5.10.37 with commit 8bb054fb336f
	Issue introduced in 5.8 with commit c8334512f3dd and fixed in 5.11.21 with commit 3b1ac40c6012
	Issue introduced in 5.8 with commit c8334512f3dd and fixed in 5.12.4 with commit 5e413c0831ff
	Issue introduced in 5.8 with commit c8334512f3dd and fixed in 5.13 with commit 8392df5d7e0b

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2021-47017
will be updated if fixes are backported, please check that for the most
up to date information about this issue.

Affected files
==============

The file(s) affected by this issue are:
	drivers/net/wireless/ath/ath10k/htc.c

Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/8bb054fb336f4250002fff4e0b075221c05c3c65
	https://git.kernel.org/stable/c/3b1ac40c6012140828caa79e592a438a18ebf71b
	https://git.kernel.org/stable/c/5e413c0831ff4700d1739db3fa3ae9f859744676
	https://git.kernel.org/stable/c/8392df5d7e0b6a7d21440da1fc259f9938f4dec3