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:
parent
c14d01b8a1
commit
dce15efebe
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue