From: Chris Wilson Date: Sat, 7 Dec 2019 22:26:44 +0000 (+0000) Subject: drm/i915/gem: Comment on inability to check args.pad for MMAP_OFFSET X-Git-Tag: v5.15~3115^2~24^2~1561 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8d65859a4cbae92f441b9aec8780055a361cc3d0;p=platform%2Fkernel%2Flinux-starfive.git drm/i915/gem: Comment on inability to check args.pad for MMAP_OFFSET Since we didn't check and insist that args.pad must be zero for MMAP_GTT historically, we cannot insert a check now as old userspace may be feeding in garbage. As such the lack of check is enshrined into the ABI, so add a comment to remind us we cannot add the check later. Signed-off-by: Chris Wilson Cc: Joonas Lahtinen Reviewed-by: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20191207222644.2830129-1-chris@chris-wilson.co.uk --- diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c index 3a3f30b..879fff8 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c @@ -620,6 +620,15 @@ i915_gem_mmap_offset_ioctl(struct drm_device *dev, void *data, enum i915_mmap_type type; int err; + /* + * Historically we failed to check args.pad and args.offset + * and so we cannot use those fields for user input and we cannot + * add -EINVAL for them as the ABI is fixed, i.e. old userspace + * may be feeding in garbage in those fields. + * + * if (args->pad) return -EINVAL; is verbotten! + */ + err = i915_user_extensions(u64_to_user_ptr(args->extensions), NULL, 0, NULL); if (err)