staging: bcm: fix possible memory leak in bcm_char_ioctl()
authorWei Yongjun <yongjun_wei@trendmicro.com.cn>
Mon, 3 Sep 2012 10:02:23 +0000 (18:02 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 4 Sep 2012 21:14:08 +0000 (14:14 -0700)
psFwInfo has been allocated in this function and should be
freed before leaving from the error handling cases.

spatch with a semantic match is used to found this problem.
(http://coccinelle.lip6.fr/)

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/bcm/Bcmchar.c

index cf411d1706b1f7cb38c784bd1fb7cbb939bcb0cf..3d02c2ebfb8d455377a97cacb92d3d321f8f5707 100644 (file)
@@ -820,6 +820,7 @@ cntrlEnd:
 
                if (copy_from_user(psFwInfo, IoBuffer.InputBuffer, IoBuffer.InputLength)) {
                        up(&Adapter->fw_download_sema);
+                       kfree(psFwInfo);
                        return -EFAULT;
                }
 
@@ -829,6 +830,7 @@ cntrlEnd:
                        BCM_DEBUG_PRINT(Adapter, DBG_TYPE_PRINTK, 0, 0, "Something else is wrong %lu\n",
                                        psFwInfo->u32FirmwareLength);
                        up(&Adapter->fw_download_sema);
+                       kfree(psFwInfo);
                        Status = -EINVAL;
                        return Status;
                }