diff options
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 16 |
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 | } |
