aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-09-26 15:21:44 -0400
committerChris Wilson <chris@chris-wilson.co.uk>2010-10-03 09:16:18 -0400
commit7dcd2499deab8f10011713c40bc2f309c9b65077 (patch)
tree1fc0476339e3fabd6b2a5f62dba1fd10abfd82f8 /drivers/gpu
parentce9d419dbecc292cc3e06e8b1d6d123d3fa813a4 (diff)
drm/i915: Rephrase pwrite bounds checking to avoid any potential overflow
... and do the same for pread. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@kernel.org
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 7749e78a7300..aa959c4a1836 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -471,12 +471,8 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data,
471 return -ENOENT; 471 return -ENOENT;
472 obj_priv = to_intel_bo(obj); 472 obj_priv = to_intel_bo(obj);
473 473
474 /* Bounds check source. 474 /* Bounds check source. */
475 * 475 if (args->offset > obj->size || args->size > obj->size - args->offset) {
476 * XXX: This could use review for overflow issues...
477 */
478 if (args->offset > obj->size || args->size > obj->size ||
479 args->offset + args->size > obj->size) {
480 ret = -EINVAL; 476 ret = -EINVAL;
481 goto err; 477 goto err;
482 } 478 }
@@ -939,12 +935,8 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
939 return -ENOENT; 935 return -ENOENT;
940 obj_priv = to_intel_bo(obj); 936 obj_priv = to_intel_bo(obj);
941 937
942 /* Bounds check destination. 938 /* Bounds check destination. */
943 * 939 if (args->offset > obj->size || args->size > obj->size - args->offset) {
944 * XXX: This could use review for overflow issues...
945 */
946 if (args->offset > obj->size || args->size > obj->size ||
947 args->offset + args->size > obj->size) {
948 ret = -EINVAL; 940 ret = -EINVAL;
949 goto err; 941 goto err;
950 } 942 }