Message ID | 20240904031348.4139545-1-ming.lei@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [V2,RESEND] ublk_drv: fix NULL pointer dereference in ublk_ctrl_start_recovery() | expand |
On Wed, 04 Sep 2024 11:13:48 +0800, Ming Lei wrote: > When two UBLK_CMD_START_USER_RECOVERY commands are submitted, the > first one sets 'ubq->ubq_daemon' to NULL, and the second one triggers > WARN in ublk_queue_reinit() and subsequently a NULL pointer dereference > issue. > > Fix it by adding the check in ublk_ctrl_start_recovery() and return > immediately in case of zero 'ub->nr_queues_ready'. > > [...] Applied, thanks! [1/1] ublk_drv: fix NULL pointer dereference in ublk_ctrl_start_recovery() commit: e58f5142f88320a5b1449f96a146f2f24615c5c7 Best regards,
diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index 890c08792ba8..1d53a3f48a0e 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -2663,6 +2663,8 @@ static int ublk_ctrl_start_recovery(struct ublk_device *ub, mutex_lock(&ub->mutex); if (!ublk_can_use_recovery(ub)) goto out_unlock; + if (!ub->nr_queues_ready) + goto out_unlock; /* * START_RECOVERY is only allowd after: *