Browse Source

libobs-winrt: Fix potential race crash

CreateForWindow can fail if the window is destroyed.
jpark37 4 years ago
parent
commit
71d5451670
1 changed files with 5 additions and 1 deletions
  1. 5 1
      libobs-winrt/winrt-capture.cpp

+ 5 - 1
libobs-winrt/winrt-capture.cpp

@@ -336,11 +336,15 @@ try {
 		activation_factory.as<IGraphicsCaptureItemInterop>();
 	winrt::Windows::Graphics::Capture::GraphicsCaptureItem item = {nullptr};
 	try {
-		interop_factory->CreateForWindow(
+		hr = interop_factory->CreateForWindow(
 			window,
 			winrt::guid_of<ABI::Windows::Graphics::Capture::
 					       IGraphicsCaptureItem>(),
 			reinterpret_cast<void **>(winrt::put_abi(item)));
+		if (FAILED(hr)) {
+			blog(LOG_ERROR, "CreateForWindow (0x%08X)", hr);
+			return nullptr;
+		}
 	} catch (winrt::hresult_error &err) {
 		blog(LOG_ERROR, "CreateForWindow (0x%08X): %ls", err.to_abi(),
 		     err.message().c_str());