diff options
author | Damien Le Moal <damien.lemoal@opensource.wdc.com> | 2022-06-01 15:25:43 +0900 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2022-06-01 22:36:44 -0400 |
commit | 05fbde3a77a4f1d62e4c4428f384288c1f1a0be5 (patch) | |
tree | f706ae8589d8fc33ef0ed9e3491b8b5e740d03dd /drivers/scsi/qlogicpti.c | |
parent | 4094981db7b6ed6ebe3ebe398d8d9136ac5c44c8 (diff) | |
download | linux-stable-05fbde3a77a4f1d62e4c4428f384288c1f1a0be5.tar.gz linux-stable-05fbde3a77a4f1d62e4c4428f384288c1f1a0be5.tar.bz2 linux-stable-05fbde3a77a4f1d62e4c4428f384288c1f1a0be5.zip |
scsi: sd: Fix potential NULL pointer dereference
If sd_probe() sees an early error before sdkp->device is initialized,
sd_zbc_release_disk() is called. This causes a NULL pointer dereference
when sd_is_zoned() is called inside that function. Avoid this by removing
the call to sd_zbc_release_disk() in sd_probe() error path.
This change is safe and does not result in zone information memory leakage
because the zone information for a zoned disk is allocated only when
sd_revalidate_disk() is called, at which point sdkp->disk_dev is fully set,
resulting in sd_disk_release() being called when needed to cleanup a disk
zone information using sd_zbc_release_disk().
Link: https://lore.kernel.org/r/20220601062544.905141-2-damien.lemoal@opensource.wdc.com
Fixes: 89d947561077 ("sd: Implement support for ZBC devices")
Reported-by: Dongliang Mu <mudongliangabcd@gmail.com>
Suggested-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/qlogicpti.c')
0 files changed, 0 insertions, 0 deletions