nfc: st-nci: fix memory leaks in EVT_TRANSACTION
authorMartin Faltesek <mfaltesek@google.com>
Tue, 22 Nov 2022 00:42:45 +0000 (18:42 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 Dec 2022 16:41:07 +0000 (17:41 +0100)
[ Upstream commit 440f2ae9c9f06e26f5dcea697a53717fc61a318c ]

Error path does not free previously allocated memory. Add devm_kfree() to
the failure path.

Reported-by: Denis Efremov <denis.e.efremov@oracle.com>
Reviewed-by: Guenter Roeck <groeck@google.com>
Fixes: 5d1ceb7f5e56 ("NFC: st21nfcb: Add HCI transaction event support")
Signed-off-by: Martin Faltesek <mfaltesek@google.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/nfc/st-nci/se.c

index 522b7a1..a915cad 100644 (file)
@@ -339,8 +339,10 @@ static int st_nci_hci_connectivity_event_received(struct nci_dev *ndev,
 
                /* Check next byte is PARAMETERS tag (82) */
                if (skb->data[transaction->aid_len + 2] !=
-                   NFC_EVT_TRANSACTION_PARAMS_TAG)
+                   NFC_EVT_TRANSACTION_PARAMS_TAG) {
+                       devm_kfree(dev, transaction);
                        return -EPROTO;
+               }
 
                transaction->params_len = skb->data[transaction->aid_len + 3];
                memcpy(transaction->params, skb->data +