[PATCH 3/3] dxva2: Limit allowed number of substreams in CreateVideoProcessor().
Nikolay Sivov
nsivov at codeweavers.com
Tue Nov 2 14:05:39 CDT 2021
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/dxva2/main.c | 6 ++++++
dlls/dxva2/tests/dxva2.c | 2 --
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/dxva2/main.c b/dlls/dxva2/main.c
index 81c32692f7f..46f5a7af485 100644
--- a/dlls/dxva2/main.c
+++ b/dlls/dxva2/main.c
@@ -496,6 +496,12 @@ static HRESULT WINAPI device_manager_processor_service_CreateVideoProcessor(IDir
/* FIXME: validate render target format */
+ if (max_substreams >= 16)
+ {
+ WARN("Invalid substreams count %u.\n", max_substreams);
+ return E_INVALIDARG;
+ }
+
if (!(object = heap_alloc_zero(sizeof(*object))))
return E_OUTOFMEMORY;
diff --git a/dlls/dxva2/tests/dxva2.c b/dlls/dxva2/tests/dxva2.c
index 75c23dfdcda..e3307032ad4 100644
--- a/dlls/dxva2/tests/dxva2.c
+++ b/dlls/dxva2/tests/dxva2.c
@@ -470,9 +470,7 @@ static void test_video_processor(void)
/* Number of substreams does not include reference stream. */
hr = IDirectXVideoProcessorService_CreateVideoProcessor(service, &DXVA2_VideoProcSoftwareDevice, &video_desc,
D3DFMT_A8R8G8B8, 16, &processor);
-todo_wine
ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
- if (SUCCEEDED(hr)) IDirectXVideoProcessor_Release(processor);
hr = IDirectXVideoProcessorService_CreateVideoProcessor(service, &DXVA2_VideoProcSoftwareDevice, &video_desc,
D3DFMT_A8R8G8B8, 15, &processor);
--
2.33.0
More information about the wine-devel
mailing list