In the Linux kernel, the following vulnerability has been resolved: wifi: ath9k: hif_usb: clean up skbs if ath9k_hif_usb_rx_stream() fails Syzkaller detected a memory leak of skbs in ath9k_hif_usb_rx_stream(). While processing skbs in ath9k_hif_usb_rx_stream(), the already allocated skbs in skb_pool are not freed if ath9k_hif_usb_rx_stream() fails. If we have an incorrect pkt_len or pkt_tag, the input skb is considered invalid and dropped. All the associated packets already in skb_pool should be dropped and freed. Added a comment describing this issue. The patch also makes remain_skb NULL after being processed so that it cannot be referenced after potential free. The initialization of hif_dev fields which are associated with remain_skb (rx_remain_len, rx_transfer_len and rx_pad_len) is moved after a new remain_skb is allocated. Found by Linux Verification Center (linuxtesting.org) with Syzkaller.
https://git.kernel.org/stable/c/f26dd69f61eff2eedf5df2d199bdd23108309947
https://git.kernel.org/stable/c/cd8316767099920a5d41feed1afab0c482a43e9f
https://git.kernel.org/stable/c/c766e37fccd5a5c5059be7efcd9618bf8a2c17c3
https://git.kernel.org/stable/c/9acdec72787af1bc8ed92711b52118c8e3e638a2
https://git.kernel.org/stable/c/61490d2710277e8a55009b7682456ae22f8087cf
https://git.kernel.org/stable/c/3fc6401fafde11712a83089fa2cc874cfd10e2cd
https://git.kernel.org/stable/c/0af54343a76263a12dbae7fafb64eb47c4a6ad38