From: Rickard Strandqvist Date: Mon, 29 Dec 2014 12:41:33 +0000 (+0100) Subject: staging: ft1000: ft1000-usb: ft1000_hw.c: Fix a potential memory leak. X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=64ed8f51f97304f811f34e89afdccf7bf9836a93;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git staging: ft1000: ft1000-usb: ft1000_hw.c: Fix a potential memory leak. Avoid allocate memory if we will exit the function. Was found by using a static code analysis program called cppcheck. Signed-off-by: Rickard Strandqvist Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c index d12cfc9aa32a..f0ac43838461 100644 --- a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c @@ -332,15 +332,15 @@ int card_send_command(struct ft1000_usb *ft1000dev, void *ptempbuffer, pr_debug("enter card_send_command... size=%d\n", size); + ret = ft1000_read_register(ft1000dev, &temp, FT1000_REG_DOORBELL); + if (ret) + return ret; + commandbuf = kmalloc(size + 2, GFP_KERNEL); if (!commandbuf) return -ENOMEM; memcpy((void *)commandbuf + 2, (void *)ptempbuffer, size); - ret = ft1000_read_register(ft1000dev, &temp, FT1000_REG_DOORBELL); - if (ret) - return ret; - if (temp & 0x0100) usleep_range(900, 1100);