NFC: nfcmrvl: double free on error path
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 8 Mar 2017 05:22:37 +0000 (08:22 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Mar 2018 08:17:46 +0000 (09:17 +0100)
[ Upstream commit ca42fb9e52d155547e6cf18cf26bce3e1a6af4ea ]

The nci_spi_send() function calls kfree_skb(skb) on both error and
success so this extra kfree_skb() is a double free.

Fixes: caf6e49bf6d0 ("NFC: nfcmrvl: add spi driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/nfc/nfcmrvl/spi.c

index a7faa0bcc01e8a101bfafefff157975bc448709b..fc8e78a29d77a83feacd0cda380f6cd736e96fff 100644 (file)
@@ -96,10 +96,9 @@ static int nfcmrvl_spi_nci_send(struct nfcmrvl_private *priv,
        /* Send the SPI packet */
        err = nci_spi_send(drv_data->nci_spi, &drv_data->handshake_completion,
                           skb);
-       if (err != 0) {
+       if (err)
                nfc_err(priv->dev, "spi_send failed %d", err);
-               kfree_skb(skb);
-       }
+
        return err;
 }