Henri Verbeet : libs/vkd3d-shader: Validate the DXBC version.
Alexandre Julliard
julliard at winehq.org
Mon Jan 15 10:54:13 CST 2018
Module: vkd3d
Branch: master
Commit: 2d8e2fbe8699e96c5596fe44204b60ace363a0f8
URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=2d8e2fbe8699e96c5596fe44204b60ace363a0f8
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Mon Jan 15 20:07:24 2018 +0330
libs/vkd3d-shader: Validate the DXBC version.
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
libs/vkd3d-shader/dxbc.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/libs/vkd3d-shader/dxbc.c b/libs/vkd3d-shader/dxbc.c
index 6aa2ffa..331b619 100644
--- a/libs/vkd3d-shader/dxbc.c
+++ b/libs/vkd3d-shader/dxbc.c
@@ -1814,6 +1814,7 @@ static HRESULT parse_dxbc(const char *data, SIZE_T data_size,
DWORD chunk_count;
DWORD total_size;
unsigned int i;
+ DWORD version;
DWORD tag;
read_dword(&ptr, &tag);
@@ -1828,7 +1829,13 @@ static HRESULT parse_dxbc(const char *data, SIZE_T data_size,
WARN("Ignoring DXBC checksum.\n");
skip_dword_unknown(&ptr, 4);
- skip_dword_unknown(&ptr, 1); /* It seems to always be 0x00000001. */
+ read_dword(&ptr, &version);
+ TRACE("version: %#x.\n", version);
+ if (version != 0x00000001)
+ {
+ WARN("Got unexpected DXBC version %#x.\n", version);
+ return E_INVALIDARG;
+ }
read_dword(&ptr, &total_size);
TRACE("total size: %#x\n", total_size);
More information about the wine-cvs
mailing list