[PATCH] scsi: rdac: preserve controller allocation errors

Slavin Liu posted 1 patch 1 week, 4 days ago
drivers/scsi/device_handler/scsi_dh_rdac.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] scsi: rdac: preserve controller allocation errors
Posted by Slavin Liu 1 week, 4 days ago
initialize_controller() overwrites its allocation failure with
SCSI_DH_OK. Only set success after obtaining and linking a controller,
so the caller cannot reach ownership checks or cleanup with NULL ctlr.

Detected by static analysis and reviewed with AI-assisted source auditing.

Fixes: 327825574132 ("scsi_dh_rdac: switch to scsi_execute_req_flags()")
Assisted-by: LLM
Signed-off-by: Slavin Liu <bolin.liu@seu.edu.cn>
---
 drivers/scsi/device_handler/scsi_dh_rdac.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/device_handler/scsi_dh_rdac.c b/drivers/scsi/device_handler/scsi_dh_rdac.c
index 88c8e36b221e..ed02e1737bd7 100644
--- a/drivers/scsi/device_handler/scsi_dh_rdac.c
+++ b/drivers/scsi/device_handler/scsi_dh_rdac.c
@@ -455,9 +455,9 @@ static int initialize_controller(struct scsi_device *sdev,
 		else {
 			h->sdev = sdev;
 			list_add_rcu(&h->node, &h->ctlr->dh_list);
+			err = SCSI_DH_OK;
 		}
 		spin_unlock(&list_lock);
-		err = SCSI_DH_OK;
 	}
 	return err;
 }