Skip to content

Commit 40543b3

Browse files
JiangJiasanguy11
authored andcommitted
ice: Add check for kzalloc
Add the check for the return value of kzalloc in order to avoid NULL pointer dereference. Moreover, use the goto-label to share the clean code. Fixes: d6b98c8 ("ice: add write functionality for GNSS TTY") Signed-off-by: Jiasheng Jiang <[email protected]> Reviewed-by: Jiri Pirko <[email protected]> Tested-by: Gurucharan G <[email protected]> (A Contingent worker at Intel) Signed-off-by: Tony Nguyen <[email protected]>
1 parent f589856 commit 40543b3

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

drivers/net/ethernet/intel/ice/ice_gnss.c

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,9 @@ static struct tty_driver *ice_gnss_create_tty_driver(struct ice_pf *pf)
461461
for (i = 0; i < ICE_GNSS_TTY_MINOR_DEVICES; i++) {
462462
pf->gnss_tty_port[i] = kzalloc(sizeof(*pf->gnss_tty_port[i]),
463463
GFP_KERNEL);
464+
if (!pf->gnss_tty_port[i])
465+
goto err_out;
466+
464467
pf->gnss_serial[i] = NULL;
465468

466469
tty_port_init(pf->gnss_tty_port[i]);
@@ -470,21 +473,23 @@ static struct tty_driver *ice_gnss_create_tty_driver(struct ice_pf *pf)
470473
err = tty_register_driver(tty_driver);
471474
if (err) {
472475
dev_err(dev, "Failed to register TTY driver err=%d\n", err);
473-
474-
for (i = 0; i < ICE_GNSS_TTY_MINOR_DEVICES; i++) {
475-
tty_port_destroy(pf->gnss_tty_port[i]);
476-
kfree(pf->gnss_tty_port[i]);
477-
}
478-
kfree(ttydrv_name);
479-
tty_driver_kref_put(pf->ice_gnss_tty_driver);
480-
481-
return NULL;
476+
goto err_out;
482477
}
483478

484479
for (i = 0; i < ICE_GNSS_TTY_MINOR_DEVICES; i++)
485480
dev_info(dev, "%s%d registered\n", ttydrv_name, i);
486481

487482
return tty_driver;
483+
484+
err_out:
485+
while (i--) {
486+
tty_port_destroy(pf->gnss_tty_port[i]);
487+
kfree(pf->gnss_tty_port[i]);
488+
}
489+
kfree(ttydrv_name);
490+
tty_driver_kref_put(pf->ice_gnss_tty_driver);
491+
492+
return NULL;
488493
}
489494

490495
/**

0 commit comments

Comments
 (0)