diff mbox

drm/radeon: check buffer relocation offset

Message ID 1398692422-14849-1-git-send-email-leo.liu@amd.com (mailing list archive)
State New, archived
Headers show

Commit Message

Leo Liu April 28, 2014, 1:40 p.m. UTC
Signed-off-by: Leo Liu <leo.liu@amd.com>
Cc:stable@vger.kernel.org
---
 drivers/gpu/drm/radeon/radeon_uvd.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Christian König April 28, 2014, 2:17 p.m. UTC | #1
Am 28.04.2014 15:40, schrieb Leo Liu:
> Signed-off-by: Leo Liu <leo.liu@amd.com>

> Cc:stable@vger.kernel.org

There should be a space between the "CC:" and "stable@vger.kernel.org"

> ---
>   drivers/gpu/drm/radeon/radeon_uvd.c | 4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_uvd.c b/drivers/gpu/drm/radeon/radeon_uvd.c
> index 5748bda..0f96c47 100644
> --- a/drivers/gpu/drm/radeon/radeon_uvd.c
> +++ b/drivers/gpu/drm/radeon/radeon_uvd.c
> @@ -465,6 +465,10 @@ static int radeon_uvd_cs_reloc(struct radeon_cs_parser *p,
>   	cmd = radeon_get_ib_value(p, p->idx) >> 1;
>   
>   	if (cmd < 0x4) {
> +		if (end <= start) {
> +			DRM_ERROR("invalid reloc offset %X!\n", offset);
> +			return -EINVAL;
> +		}

No idea where that came from (mail client or your editor), but 
checkpatch.pl complained that those new lines ended with DOS line endings.

Anyway I've fixed those minor problems and applied it to my 3.15 queue.

Thanks,
Christian.

>   		if ((end - start) < buf_sizes[cmd]) {
>   			DRM_ERROR("buffer (%d) to small (%d / %d)!\n", cmd,
>   				  (unsigned)(end - start), buf_sizes[cmd]);
diff mbox

Patch

diff --git a/drivers/gpu/drm/radeon/radeon_uvd.c b/drivers/gpu/drm/radeon/radeon_uvd.c
index 5748bda..0f96c47 100644
--- a/drivers/gpu/drm/radeon/radeon_uvd.c
+++ b/drivers/gpu/drm/radeon/radeon_uvd.c
@@ -465,6 +465,10 @@  static int radeon_uvd_cs_reloc(struct radeon_cs_parser *p,
 	cmd = radeon_get_ib_value(p, p->idx) >> 1;
 
 	if (cmd < 0x4) {
+		if (end <= start) {
+			DRM_ERROR("invalid reloc offset %X!\n", offset);
+			return -EINVAL;
+		}
 		if ((end - start) < buf_sizes[cmd]) {
 			DRM_ERROR("buffer (%d) to small (%d / %d)!\n", cmd,
 				  (unsigned)(end - start), buf_sizes[cmd]);