Bluetooth: qca: fix firmware check error path

commit 40d442f969fb1e871da6fca73d3f8aef1f888558 upstream.

A recent commit fixed the code that parses the firmware files before
downloading them to the controller but introduced a memory leak in case
the sanity checks ever fail.

Make sure to free the firmware buffer before returning on errors.

Fixes: f905ae0be4b7 ("Bluetooth: qca: add missing firmware sanity checks")
Cc: stable@vger.kernel.org      # 4.19
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Johan Hovold 2024-05-01 08:37:40 +02:00 committed by Greg Kroah-Hartman
parent 6b63e0ef4d
commit 7bcba557d5
1 changed files with 1 additions and 1 deletions

View File

@ -605,7 +605,7 @@ static int qca_download_firmware(struct hci_dev *hdev,
ret = qca_tlv_check_data(hdev, config, data, size, soc_type); ret = qca_tlv_check_data(hdev, config, data, size, soc_type);
if (ret) if (ret)
return ret; goto out;
segment = data; segment = data;
remain = size; remain = size;