|
@@ -471,12 +471,8 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data,
|
|
|
return -ENOENT;
|
|
|
obj_priv = to_intel_bo(obj);
|
|
|
|
|
|
- /* Bounds check source.
|
|
|
- *
|
|
|
- * XXX: This could use review for overflow issues...
|
|
|
- */
|
|
|
- if (args->offset > obj->size || args->size > obj->size ||
|
|
|
- args->offset + args->size > obj->size) {
|
|
|
+ /* Bounds check source. */
|
|
|
+ if (args->offset > obj->size || args->size > obj->size - args->offset) {
|
|
|
ret = -EINVAL;
|
|
|
goto err;
|
|
|
}
|
|
@@ -939,12 +935,8 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
|
|
|
return -ENOENT;
|
|
|
obj_priv = to_intel_bo(obj);
|
|
|
|
|
|
- /* Bounds check destination.
|
|
|
- *
|
|
|
- * XXX: This could use review for overflow issues...
|
|
|
- */
|
|
|
- if (args->offset > obj->size || args->size > obj->size ||
|
|
|
- args->offset + args->size > obj->size) {
|
|
|
+ /* Bounds check destination. */
|
|
|
+ if (args->offset > obj->size || args->size > obj->size - args->offset) {
|
|
|
ret = -EINVAL;
|
|
|
goto err;
|
|
|
}
|