summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/stackcollapse.py
diff options
context:
space:
mode:
authorYehyeong Lee <yhlee@isslab.korea.ac.kr>2026-10-05 21:35:54 +0900
committerJuergen Gross <jgross@suse.com>2026-10-09 10:11:18 +0200
commit992df081bc8878d11e1eb5ae4a609910fd35c62b (patch)
tree1f51459a2ddf8a2dc5cbab3be2eee4824446d0bb /tools/perf/scripts/python/stackcollapse.py
parent71d59fc2a5e357ac03bb2ee1522a7c1f8bd0c34f (diff)
downloadlinux-992df081bc8878d11e1eb5ae4a609910fd35c62b.tar.gz
linux-992df081bc8878d11e1eb5ae4a609910fd35c62b.zip
xen/scsifront: check for a NULL shadow entry on a backend response
scsifront_do_response() validates the rqid in a backend response against VSCSIIF_MAX_REQS before using it to index info->shadow[], but then dereferences the entry to test ->inflight without checking that the slot is populated. Shadow slots are NULL before a command is submitted (the host private area is zeroed at allocation) and are reset to NULL in _scsifront_put_rqid() once a request completes, so an in-range rqid that does not correspond to an outstanding request makes the frontend dereference a NULL pointer. A malicious or buggy backend can thus crash the guest by returning a response whose rqid is in range but not in flight -- for example a spurious response before any command has been issued, or a duplicate of one already completed. The ring has only VSCSIIF_MAX_REQS (16) slots, so before the first command every in-range rqid selects a NULL slot. Reject a response whose shadow slot is not populated. Fixes: 6d1c2f48f3fc ("xen/scsifront: harden driver against malicious backend") Cc: stable@vger.kernel.org Signed-off-by: Yehyeong Lee <yhlee@isslab.korea.ac.kr> Reviewed-by: Juergen Gross <jgross@suse.com> Signed-off-by: Juergen Gross <jgross@suse.com> Message-ID: <20261005123555.253995-1-yhlee@isslab.korea.ac.kr>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions