Skip to content

Commit d8ab68b

Browse files
maurizio-lombardimartinkpetersen
authored andcommitted
scsi: target: Fix NULL pointer dereference in core_scsi3_decode_spec_i_port()
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 <[email protected]> Link: https://lore.kernel.org/r/[email protected] Reviewed-by: Mike Christie <[email protected]> Reviewed-by: John Meneghini <[email protected]> Signed-off-by: Martin K. Petersen <[email protected]>
1 parent 5c3ba81 commit d8ab68b

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

drivers/target/target_core_pr.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1842,7 +1842,9 @@ core_scsi3_decode_spec_i_port(
18421842
}
18431843

18441844
kmem_cache_free(t10_pr_reg_cache, dest_pr_reg);
1845-
core_scsi3_lunacl_undepend_item(dest_se_deve);
1845+
1846+
if (dest_se_deve)
1847+
core_scsi3_lunacl_undepend_item(dest_se_deve);
18461848

18471849
if (is_local)
18481850
continue;

0 commit comments

Comments
 (0)