Nikolay Sivov (@nsivov) commented about dlls/opcservices/tests/opcservices.c:
+ hr = CreateStreamOnHGlobal(NULL, TRUE, &stream); + ok(hr == S_OK, "Failed to create a stream, hr %#lx.\n", hr); + hr = IOpcFactory_WritePackageToStream(factory, package, OPC_WRITE_FORCE_ZIP32, stream); + ok(hr == S_OK, "Failed to write package, hr %#lx.\n", hr); + IOpcPackage_Release(package); + hr = IStream_Seek(stream, start, STREAM_SEEK_SET, NULL); + ok(hr == S_OK, "Failed to seek stream, hr %#lx.\n", hr); + + hr = IOpcFactory_ReadPackageFromStream(factory, stream, OPC_READ_DEFAULT, &package); + todo_wine ok(hr == S_OK, "Failed to read package, hr %#lx.\n", hr); + IStream_Release(stream); + if (FAILED(hr)) + { + IOpcPackage_Release(package); + goto done; + } If it failed you shouldn't release the package. The fact that it works means there is a leak somewhere probably.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/8837#note_114169