summaryrefslogtreecommitdiff
path: root/drivers/scsi
diff options
context:
space:
mode:
authorjackysliu <1972843537@qq.com>2025-06-24 19:58:24 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-08-20 18:41:23 +0200
commit50d9bd48321038bd6e15af5a454bbcd180cf6f80 (patch)
tree486199dea5b1bfbdf27c9f203069a88c4f1cbe63 /drivers/scsi
parent3d4d6177d4b2fe2bb877bd5a8d4fe62df6ff6f36 (diff)
downloadlinux-50d9bd48321038bd6e15af5a454bbcd180cf6f80.tar.gz
linux-50d9bd48321038bd6e15af5a454bbcd180cf6f80.tar.bz2
linux-50d9bd48321038bd6e15af5a454bbcd180cf6f80.zip
scsi: bfa: Double-free fix
[ Upstream commit add4c4850363d7c1b72e8fce9ccb21fdd2cf5dc9 ] When the bfad_im_probe() function fails during initialization, the memory pointed to by bfad->im is freed without setting bfad->im to NULL. Subsequently, during driver uninstallation, when the state machine enters the bfad_sm_stopping state and calls the bfad_im_probe_undo() function, it attempts to free the memory pointed to by bfad->im again, thereby triggering a double-free vulnerability. Set bfad->im to NULL if probing fails. Signed-off-by: jackysliu <1972843537@qq.com> Link: https://lore.kernel.org/r/tencent_3BB950D6D2D470976F55FC879206DE0B9A09@qq.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/bfa/bfad_im.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/bfa/bfad_im.c b/drivers/scsi/bfa/bfad_im.c
index a719a18f0fbc..f56e008ee52b 100644
--- a/drivers/scsi/bfa/bfad_im.c
+++ b/drivers/scsi/bfa/bfad_im.c
@@ -706,6 +706,7 @@ bfad_im_probe(struct bfad_s *bfad)
if (bfad_thread_workq(bfad) != BFA_STATUS_OK) {
kfree(im);
+ bfad->im = NULL;
return BFA_STATUS_FAILED;
}