| From f6765b6ef73ec23f2d6f282e9af5f9ad2f787ba5 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 27 Sep 2019 14:44:15 -0700 |
| Subject: staging: rtl8188eu: fix null dereference when kzalloc fails |
| |
| From: Connor Kuehl <connor.kuehl@canonical.com> |
| |
| [ Upstream commit 955c1532a34305f2f780b47f0c40cc7c65500810 ] |
| |
| If kzalloc() returns NULL, the error path doesn't stop the flow of |
| control from entering rtw_hal_read_chip_version() which dereferences the |
| null pointer. Fix this by adding a 'goto' to the error path to more |
| gracefully handle the issue and avoid proceeding with initialization |
| steps that we're no longer prepared to handle. |
| |
| Also update the debug message to be more consistent with the other debug |
| messages in this function. |
| |
| Addresses-Coverity: ("Dereference after null check") |
| |
| Signed-off-by: Connor Kuehl <connor.kuehl@canonical.com> |
| Link: https://lore.kernel.org/r/20190927214415.899-1-connor.kuehl@canonical.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/staging/rtl8188eu/os_dep/usb_intf.c | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/staging/rtl8188eu/os_dep/usb_intf.c b/drivers/staging/rtl8188eu/os_dep/usb_intf.c |
| index 664d93a7f90df..4fac9dca798e8 100644 |
| --- a/drivers/staging/rtl8188eu/os_dep/usb_intf.c |
| +++ b/drivers/staging/rtl8188eu/os_dep/usb_intf.c |
| @@ -348,8 +348,10 @@ static struct adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj, |
| } |
| |
| padapter->HalData = kzalloc(sizeof(struct hal_data_8188e), GFP_KERNEL); |
| - if (!padapter->HalData) |
| - DBG_88E("cant not alloc memory for HAL DATA\n"); |
| + if (!padapter->HalData) { |
| + DBG_88E("Failed to allocate memory for HAL data\n"); |
| + goto free_adapter; |
| + } |
| |
| /* step read_chip_version */ |
| rtw_hal_read_chip_version(padapter); |
| -- |
| 2.20.1 |
| |