Skip to content

Commit f8dd66b

Browse files
ShuichengLinThomas Hellström
authored andcommitted
drm/xe/oa: Limit num_syncs to prevent oversized allocations
The OA open parameters did not validate num_syncs, allowing userspace to pass arbitrarily large values, potentially leading to excessive allocations. Add check to ensure that num_syncs does not exceed DRM_XE_MAX_SYNCS, returning -EINVAL when the limit is violated. v2: use XE_IOCTL_DBG() and drop duplicated check. (Ashutosh) Fixes: c8507a2 ("drm/xe/oa/uapi: Define and parse OA sync properties") Cc: Matthew Brost <matthew.brost@intel.com> Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Signed-off-by: Matthew Brost <matthew.brost@intel.com> Link: https://patch.msgid.link/20251205234715.2476561-6-shuicheng.lin@intel.com (cherry picked from commit e057b2d) Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
1 parent 8e46130 commit f8dd66b

1 file changed

Lines changed: 3 additions & 0 deletions

File tree

drivers/gpu/drm/xe/xe_oa.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1254,6 +1254,9 @@ static int xe_oa_set_no_preempt(struct xe_oa *oa, u64 value,
12541254
static int xe_oa_set_prop_num_syncs(struct xe_oa *oa, u64 value,
12551255
struct xe_oa_open_param *param)
12561256
{
1257+
if (XE_IOCTL_DBG(oa->xe, value > DRM_XE_MAX_SYNCS))
1258+
return -EINVAL;
1259+
12571260
param->num_syncs = value;
12581261
return 0;
12591262
}

0 commit comments

Comments
 (0)