34 lines
1.2 KiB
Diff
34 lines
1.2 KiB
Diff
From 95e581fd181b213c2ed7cdc63f2abc03eaaa77ec Mon Sep 17 00:00:00 2001
|
|
From: Gert Wollny <gert.wollny@collabora.com>
|
|
Date: Tue, 30 Nov 2021 10:17:26 +0100
|
|
Subject: [PATCH] vrend: Add test to resource OOB write and fix it
|
|
|
|
v2: Also check that no depth != 1 has been send when none is due
|
|
|
|
Closes: #250
|
|
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
|
|
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
|
|
---
|
|
src/vrend_renderer.c | 3 +++
|
|
1 file changed, 3 insertions(+)
|
|
|
|
diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c
|
|
index 28f6697..357b81b 100644
|
|
--- a/src/vrend_renderer.c
|
|
+++ b/src/vrend_renderer.c
|
|
@@ -7833,8 +7833,11 @@ static int vrend_renderer_transfer_write_iov(struct vrend_context *ctx,
|
|
info->box->height) * elsize;
|
|
if (res->target == GL_TEXTURE_3D ||
|
|
res->target == GL_TEXTURE_2D_ARRAY ||
|
|
+ res->target == GL_TEXTURE_2D_MULTISAMPLE_ARRAY ||
|
|
res->target == GL_TEXTURE_CUBE_MAP_ARRAY)
|
|
send_size *= info->box->depth;
|
|
+ else if (need_temp && info->box->depth != 1)
|
|
+ return EINVAL;
|
|
|
|
if (need_temp) {
|
|
data = malloc(send_size);
|
|
--
|
|
2.27.0
|
|
|