diff options
author | Shang XiaoJing <shangxiaojing@huawei.com> | 2022-11-17 19:37:13 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-11-21 08:31:53 +0000 |
commit | 614761e1119c994a7f19e4c9f37b1d2d7fe7306e (patch) | |
tree | 99694089e5ca72411e50efc3aafcf58c89672407 /drivers/nfc | |
parent | e204ead35401af5e120f653a133d54ee2595627e (diff) | |
download | linux-614761e1119c994a7f19e4c9f37b1d2d7fe7306e.tar.gz linux-614761e1119c994a7f19e4c9f37b1d2d7fe7306e.tar.bz2 linux-614761e1119c994a7f19e4c9f37b1d2d7fe7306e.zip |
nfc: nxp-nci: Fix potential memory leak in nxp_nci_send()
nxp_nci_send() won't free the skb when it failed for the check before
write(). As the result, the skb will memleak. Free the skb when the
check failed.
Fixes: dece45855a8b ("NFC: nxp-nci: Add support for NXP NCI chips")
Signed-off-by: Shang XiaoJing <shangxiaojing@huawei.com>
Suggested-by: Pavel Machek <pavel@denx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/nfc')
-rw-r--r-- | drivers/nfc/nxp-nci/core.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/nfc/nxp-nci/core.c b/drivers/nfc/nxp-nci/core.c index 580cb6ecffee..66b198663387 100644 --- a/drivers/nfc/nxp-nci/core.c +++ b/drivers/nfc/nxp-nci/core.c @@ -73,11 +73,15 @@ static int nxp_nci_send(struct nci_dev *ndev, struct sk_buff *skb) struct nxp_nci_info *info = nci_get_drvdata(ndev); int r; - if (!info->phy_ops->write) + if (!info->phy_ops->write) { + kfree_skb(skb); return -EOPNOTSUPP; + } - if (info->mode != NXP_NCI_MODE_NCI) + if (info->mode != NXP_NCI_MODE_NCI) { + kfree_skb(skb); return -EINVAL; + } r = info->phy_ops->write(info->phy_id, skb); if (r < 0) { |