[PATCH 0/1] MR4733: dxdiagn: Check ICreateDevEnum_CreateClassEnumerator result for S_OK.
CreateClassEnumerator() can return S_FALSE and NULL moniker if the specified category is empty or doesn't exist (and devenum implementation can do that), build_directshowfilters_tree() will crash in that case. That's not new and AFAIU should not be normally hit as the category should not be empty, but I managed to hit that on some prefix (maybe with messed up direct show registration) and the change looks simple and sure enough probably (currently it will always crash if gets S_FALSE). -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4733
From: Paul Gofman <pgofman(a)codeweavers.com> --- dlls/dxdiagn/provider.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/dxdiagn/provider.c b/dlls/dxdiagn/provider.c index 696acf7dc51..0a6111fff25 100644 --- a/dlls/dxdiagn/provider.c +++ b/dlls/dxdiagn/provider.c @@ -1652,7 +1652,7 @@ static HRESULT build_directshowfilters_tree(IDxDiagContainerImpl_Container *node return hr; hr = ICreateDevEnum_CreateClassEnumerator(pCreateDevEnum, &CLSID_ActiveMovieCategories, &pEmCat, 0); - if (FAILED(hr)) + if (hr != S_OK) goto cleanup; while (IEnumMoniker_Next(pEmCat, 1, &pMCat, NULL) == S_OK) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4733
participants (2)
-
Paul Gofman -
Paul Gofman (@gofman)