From 2fbf6d61664ba04d4c7872cbb46720e49264cf3a Mon Sep 17 00:00:00 2001 From: Haneen Mohammed Date: Thu, 11 Feb 2016 21:34:40 +0300 Subject: Staging: vt6655: Add check dma_mapping_error This patch checks for dma_mapping_error() after using dma_map_single. If the dma map fails we release skb buff allocated by dev_alloc_skb() to avoid possible causes of resource leak. Signed-off-by: Haneen Mohammed Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'drivers/staging/vt6655/device_main.c') diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index ad0fb84..8a1ed62 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -742,6 +742,11 @@ static bool device_alloc_rx_buf(struct vnt_private *priv, dma_map_single(&priv->pcid->dev, skb_put(rd_info->skb, skb_tailroom(rd_info->skb)), priv->rx_buf_sz, DMA_FROM_DEVICE); + if (dma_mapping_error(&priv->pcid->dev, rd_info->skb_dma)) { + dev_kfree_skb(rd_info->skb); + rd_info->skb = NULL; + return false; + } *((unsigned int *)&rd->rd0) = 0; /* FIX cast */ -- cgit v1.1