Rémi Bernon (@rbernon) commented about dlls/winegstreamer/media_sink.c:
+ LeaveCriticalSection(&media_sink->cs); + return hr; + } + + if (callback) + { + if (FAILED(hr = MFCreateAsyncResult(NULL, callback, state, &result))) + { + LeaveCriticalSection(&media_sink->cs); + free(command); + return hr; + } + IMFAsyncResult_AddRef((command->u.finalize.result = result)); + } + + hr = MFPutWorkItem(MFASYNC_CALLBACK_QUEUE_STANDARD, &media_sink->async_callback, &command->IUnknown_iface); You're leaking command if `MFPutWorkItem` fails. Note that I missed that before but it's the same in `media_sink_queue_command`.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/4479#note_53486