[PATCH 2/3] d3d11: Validate the DXBC version.
Henri Verbeet
hverbeet at codeweavers.com
Fri Jan 19 12:25:15 CST 2018
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
dlls/d3d11/utils.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/dlls/d3d11/utils.c b/dlls/d3d11/utils.c
index c9e137c66e5..c72216def53 100644
--- a/dlls/d3d11/utils.c
+++ b/dlls/d3d11/utils.c
@@ -789,6 +789,7 @@ 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);
@@ -803,7 +804,13 @@ 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);
--
2.11.0
More information about the wine-devel
mailing list