diff options
author | John Garry <[email protected]> | 2022-01-27 21:12:52 +0800 |
---|---|---|
committer | Martin K. Petersen <[email protected]> | 2022-01-31 16:40:07 -0500 |
commit | df7abcaa1246e2537ab4016077b5443bb3c09378 (patch) | |
tree | 813f446b5a04025df6d43112c625547fec5d5ca9 /scripts/gdb/linux/clk.py | |
parent | 61f162aa4381845acbdc7f2be4dfb694d027c018 (diff) |
scsi: pm8001: Fix use-after-free for aborted SSP/STP sas_task
Currently a use-after-free may occur if a sas_task is aborted by the upper
layer before we handle the I/O completion in mpi_ssp_completion() or
mpi_sata_completion().
In this case, the following are the two steps in handling those I/O
completions:
- Call complete() to inform the upper layer handler of completion of
the I/O.
- Release driver resources associated with the sas_task in
pm8001_ccb_task_free() call.
When complete() is called, the upper layer may free the sas_task. As such,
we should not touch the associated sas_task afterwards, but we do so in the
pm8001_ccb_task_free() call.
Fix by swapping the complete() and pm8001_ccb_task_free() calls ordering.
Link: https://lore.kernel.org/r/[email protected]
Reviewed-by: Damien Le Moal <[email protected]>
Acked-by: Jack Wang <[email protected]>
Signed-off-by: John Garry <[email protected]>
Signed-off-by: Martin K. Petersen <[email protected]>
Diffstat (limited to 'scripts/gdb/linux/clk.py')
0 files changed, 0 insertions, 0 deletions