2019-05-14 12:57:06

by Jia-Ju Bai

[permalink] [raw]
Subject: [BUG] rtlwifi: Resource leaks in error handling code of rtl_pci_probe()

In rtl_pci_probe(), rtl_pci_init() allocates some resources, such as:
_rtl_pci_init_trx_ring
_rtl_pci_init_rx_ring
_rtl_pci_init_rx_ring
pci_zalloc_consistent() -- resource
_rtl_pci_init_one_rxdesc
dev_alloc_skb() -- resource

_rtl_pci_init_trx_ring
_rtl_pci_init_tx_ring
pci_zalloc_consistent() -- resource

When ieee80211_register_hw() or rtl_pci_intr_mode_decide() fails, these
resources are not released in error handling code.

A possible fix is to call rtl_pci_deinit() in error handling code, but I
am not sure whether this is correct.
Thus, I only report the bugs.

These bugs are found by a runtime fuzzing tool named FIZZER written by us.


Best wishes,
Jia-Ju Bai