diff mbox series

wifi: iwlwifi: Add check for kmemdup

Message ID 20231023064501.274599-1-nichen@iscas.ac.cn (mailing list archive)
State Rejected
Delegated to: Johannes Berg
Headers show
Series wifi: iwlwifi: Add check for kmemdup | expand

Commit Message

Chen Ni Oct. 23, 2023, 6:45 a.m. UTC
Since the kmemdup may return NULL pointer,
it should be better to add check for the return value
in order to avoid NULL pointer dereference.

Fixes: 5e31b3df86ec ("wifi: iwlwifi: dbg: print pc register data once fw dump occurred")
Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
---
 drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Kalle Valo Oct. 23, 2023, 9:08 a.m. UTC | #1
Chen Ni <nichen@iscas.ac.cn> writes:

> Since the kmemdup may return NULL pointer,
> it should be better to add check for the return value
> in order to avoid NULL pointer dereference.
>
> Fixes: 5e31b3df86ec ("wifi: iwlwifi: dbg: print pc register data once
> fw dump occurred")

The fixes tag should be in one line.
Johannes Berg Oct. 23, 2023, 9:10 a.m. UTC | #2
On Mon, 2023-10-23 at 12:08 +0300, Kalle Valo wrote:
> Chen Ni <nichen@iscas.ac.cn> writes:
> 
> > Since the kmemdup may return NULL pointer,
> > it should be better to add check for the return value
> > in order to avoid NULL pointer dereference.
> > 
> > Fixes: 5e31b3df86ec ("wifi: iwlwifi: dbg: print pc register data once
> > fw dump occurred")
> 
> The fixes tag should be in one line.
> 

It's also irrelevant because (a) the fix is incorrect, and (b) we
already have a (correct) fix :)

johannes
diff mbox series

Patch

diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
index 3d87d26845e7..9bba8fa62f54 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
@@ -1307,6 +1307,8 @@  static int iwl_parse_tlv_firmware(struct iwl_drv *drv,
 				tlv_len / sizeof(struct iwl_pc_data);
 			drv->trans->dbg.pc_data =
 				kmemdup(tlv_data, tlv_len, GFP_KERNEL);
+			if (!drv->trans->dbg.pc_data)
+				return -ENOMEM;
 			break;
 		default:
 			IWL_DEBUG_INFO(drv, "unknown TLV: %d\n", tlv_type);