[PATCH 1/3] d3d10: Validate the DXBC version.

Henri Verbeet hverbeet at codeweavers.com
Fri Jan 19 12:25:14 CST 2018


Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
 dlls/d3d10/utils.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/dlls/d3d10/utils.c b/dlls/d3d10/utils.c
index 39b0902184b..223b33a8017 100644
--- a/dlls/d3d10/utils.c
+++ b/dlls/d3d10/utils.c
@@ -159,6 +159,7 @@ HRESULT parse_dxbc(const char *data, SIZE_T data_size,
     DWORD chunk_count;
     DWORD total_size;
     unsigned int i;
+    DWORD version;
     DWORD tag;
 
     if (!data)
@@ -179,7 +180,13 @@ HRESULT parse_dxbc(const char *data, SIZE_T data_size,
     /* checksum? */
     skip_dword_unknown("DXBC header", &ptr, 4);
 
-    skip_dword_unknown("DXBC header", &ptr, 1);
+    read_dword(&ptr, &version);
+    TRACE("version: %#x.\n", version);
+    if (version != 0x00000001)
+    {
+        WARN("Got unexpected DXBC version %#x.\n", version);
+        return E_FAIL;
+    }
 
     read_dword(&ptr, &total_size);
     TRACE("total size: %#x\n", total_size);
-- 
2.11.0




More information about the wine-devel mailing list