diff options
author | Jordan Crouse <jcrouse@codeaurora.org> | 2017-05-08 23:34:58 +0300 |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2017-05-27 20:48:29 +0300 |
commit | d72fea538fe6d783c1e63a2fc304019abf4be93a (patch) | |
tree | 596d2f4822f66c3ae72b3f6922fdc7ffcdc621ab | |
parent | 90dd57de4a043f642179b1323a31ca3ced826611 (diff) | |
download | linux-d72fea538fe6d783c1e63a2fc304019abf4be93a.tar.xz |
drm/msm: Fix the check for the command size
The overrun check for the size of submitted commands is off by one.
It should allow the offset plus the size to be equal to the
size of the memory object when the command stream is very tightly
constructed.
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
-rw-r--r-- | drivers/gpu/drm/msm/msm_gem_submit.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c index 8ac4ca443914..7832e6421d25 100644 --- a/drivers/gpu/drm/msm/msm_gem_submit.c +++ b/drivers/gpu/drm/msm/msm_gem_submit.c @@ -495,8 +495,9 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data, goto out; } - if ((submit_cmd.size + submit_cmd.submit_offset) >= - msm_obj->base.size) { + if (!submit_cmd.size || + ((submit_cmd.size + submit_cmd.submit_offset) > + msm_obj->base.size)) { DRM_ERROR("invalid cmdstream size: %u\n", submit_cmd.size); ret = -EINVAL; goto out; |