Message ID | 20230502140022.2852-1-jinhongzhu@hust.edu.cn |
---|---|
State | New |
Headers | show |
Series | [v2] scsi: qedf: Fix NULL dereference in error handling | expand |
Jinhong, > Smatch reported: > > drivers/scsi/qedf/qedf_main.c:3056 qedf_alloc_global_queues() > warn: missing unwind goto? > > At this point in the function, nothing has been allocated so we can > return directly. In particular the "qedf->global_queues" have not been > allocated so calling qedf_free_global_queues() will lead to a NULL > dereference when we check if (!gl[i]) and "gl" is NULL. Applied to 6.5/scsi-staging, thanks!
diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c index 35e16600fc63..f2c7dd4db9c6 100644 --- a/drivers/scsi/qedf/qedf_main.c +++ b/drivers/scsi/qedf/qedf_main.c @@ -3043,9 +3043,8 @@ static int qedf_alloc_global_queues(struct qedf_ctx *qedf) * addresses of our queues */ if (!qedf->p_cpuq) { - status = -EINVAL; QEDF_ERR(&qedf->dbg_ctx, "p_cpuq is NULL.\n"); - goto mem_alloc_failure; + return -EINVAL; } qedf->global_queues = kzalloc((sizeof(struct global_queue *)