staging: bcm: fix possible memory leak in bcm_char_ioctl()

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>
This commit is contained in:
Wei Yongjun 2012-09-03 18:02:23 +08:00 committed by Greg Kroah-Hartman
parent c14d01b8a1
commit dce15efebe

View file

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