Commit 8e4aae6b authored by Shang XiaoJing's avatar Shang XiaoJing Committed by David S. Miller
Browse files

nfc: fdp: Fix potential memory leak in fdp_nci_send()



fdp_nci_send() will call fdp_nci_i2c_write that will not free skb in
the function. As a result, when fdp_nci_i2c_write() finished, the skb
will memleak. fdp_nci_send() should free skb after fdp_nci_i2c_write()
finished.

Fixes: a06347c0 ("NFC: Add Intel Fields Peak NFC solution driver")
Signed-off-by: default avatarShang XiaoJing <shangxiaojing@huawei.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a2c65a9d
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -249,11 +249,19 @@ static int fdp_nci_close(struct nci_dev *ndev)
static int fdp_nci_send(struct nci_dev *ndev, struct sk_buff *skb)
{
	struct fdp_nci_info *info = nci_get_drvdata(ndev);
	int ret;

	if (atomic_dec_and_test(&info->data_pkt_counter))
		info->data_pkt_counter_cb(ndev);

	return info->phy_ops->write(info->phy, skb);
	ret = info->phy_ops->write(info->phy, skb);
	if (ret < 0) {
		kfree_skb(skb);
		return ret;
	}

	consume_skb(skb);
	return 0;
}

static int fdp_nci_request_firmware(struct nci_dev *ndev)