Module: wine Branch: master Commit: 8c9418fb40b5f6632cc0c603f2c0ba3f82a524b1 URL: https://source.winehq.org/git/wine.git/?a=commit;h=8c9418fb40b5f6632cc0c603f...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Tue Nov 2 22:05:39 2021 +0300
dxva2: Limit allowed number of substreams in CreateVideoProcessor().
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
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);