]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe/pf: Fix use-after-free in migration restore
authorMichał Winiarski <michal.winiarski@intel.com>
Tue, 17 Feb 2026 15:41:18 +0000 (16:41 +0100)
committerMichał Winiarski <michal.winiarski@intel.com>
Mon, 23 Mar 2026 08:44:14 +0000 (09:44 +0100)
When an error is returned from xe_sriov_pf_migration_restore_produce(),
the data pointer is not set to NULL, which can trigger use-after-free
in subsequent .write() calls.
Set the pointer to NULL upon error to fix the problem.

Fixes: 1ed30397c0b92 ("drm/xe/pf: Add support for encap/decap of bitstream to/from packet")
Reported-by: Sebastian Österlund <sebastian.osterlund@intel.com>
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/7230
Reviewed-by: Shuicheng Lin <shuicheng.lin@intel.com>
Link: https://patch.msgid.link/20260217154118.176902-1-michal.winiarski@intel.com
Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
drivers/gpu/drm/xe/xe_sriov_packet.c

index 968f32496282f6880b9fb0d94970257c194b6888..2ae9eff2a7c09bbf2e2f1095f3be07f3e074808c 100644 (file)
@@ -341,6 +341,8 @@ ssize_t xe_sriov_packet_write_single(struct xe_device *xe, unsigned int vfid,
                ret = xe_sriov_pf_migration_restore_produce(xe, vfid, *data);
                if (ret) {
                        xe_sriov_packet_free(*data);
+                       *data = NULL;
+
                        return ret;
                }