scsi: target: Fix NULL pointer dereference in core_scsi3_decode_spec_i_port()
[ Upstream commit d8ab68bdb294b09a761e967dad374f2965e1913f ] The function core_scsi3_decode_spec_i_port(), in its error code path, unconditionally calls core_scsi3_lunacl_undepend_item() passing the dest_se_deve pointer, which may be NULL. This can lead to a NULL pointer dereference if dest_se_deve remains unset. SPC-3 PR SPEC_I_PT: Unable to locate dest_tpg Unable to handle kernel paging request at virtual address dfff800000000012 Call trace: core_scsi3_lunacl_undepend_item+0x2c/0xf0 [target_core_mod] (P) core_scsi3_decode_spec_i_port+0x120c/0x1c30 [target_core_mod] core_scsi3_emulate_pro_register+0x6b8/0xcd8 [target_core_mod] target_scsi3_emulate_pr_out+0x56c/0x840 [target_core_mod] Fix this by adding a NULL check before calling core_scsi3_lunacl_undepend_item() Signed-off-by: Maurizio Lombardi <mlombard@redhat.com> Link: https://lore.kernel.org/r/20250612101556.24829-1-mlombard@redhat.com Reviewed-by: Mike Christie <michael.christie@oracle.com> Reviewed-by: John Meneghini <jmeneghi@redhat.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
7b9203afeb
commit
55dfffc5e9
@@ -1841,7 +1841,9 @@ out:
|
|||||||
}
|
}
|
||||||
|
|
||||||
kmem_cache_free(t10_pr_reg_cache, dest_pr_reg);
|
kmem_cache_free(t10_pr_reg_cache, dest_pr_reg);
|
||||||
core_scsi3_lunacl_undepend_item(dest_se_deve);
|
|
||||||
|
if (dest_se_deve)
|
||||||
|
core_scsi3_lunacl_undepend_item(dest_se_deve);
|
||||||
|
|
||||||
if (is_local)
|
if (is_local)
|
||||||
continue;
|
continue;
|
||||||
|
Reference in New Issue
Block a user