From: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> --- dlls/mfreadwrite/tests/mfplat.c | 10 ++++++++++ dlls/mfreadwrite/writer.c | 13 +++++++++++++ 2 files changed, 23 insertions(+) diff --git a/dlls/mfreadwrite/tests/mfplat.c b/dlls/mfreadwrite/tests/mfplat.c index 95f615767d5..14e92cceab2 100644 --- a/dlls/mfreadwrite/tests/mfplat.c +++ b/dlls/mfreadwrite/tests/mfplat.c @@ -1299,8 +1299,18 @@ static void test_sink_writer(void) hr = MFCreateSinkWriterFromURL(NULL, NULL, NULL, NULL); ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + writer = (void *)0xdeadbeef; hr = MFCreateSinkWriterFromURL(NULL, NULL, NULL, &writer); ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + ok(!writer, "Unexpected pointer %p.\n", writer); + + hr = MFCreateSinkWriterFromMediaSink(NULL, NULL, NULL); + ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + + writer = (void *)0xdeadbeef; + hr = MFCreateSinkWriterFromMediaSink(NULL, NULL, &writer); + ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + ok(!writer, "Unexpected pointer %p.\n", writer); } START_TEST(mfplat) diff --git a/dlls/mfreadwrite/writer.c b/dlls/mfreadwrite/writer.c index f4bd08b8cda..9e92e6f8f9e 100644 --- a/dlls/mfreadwrite/writer.c +++ b/dlls/mfreadwrite/writer.c @@ -186,6 +186,11 @@ HRESULT create_sink_writer_from_sink(IMFMediaSink *sink, IMFAttributes *attribut struct sink_writer *object; HRESULT hr; + *out = NULL; + + if (!sink) + return E_INVALIDARG; + object = malloc(sizeof(*object)); if (!object) return E_OUTOFMEMORY; @@ -205,6 +210,9 @@ HRESULT WINAPI MFCreateSinkWriterFromMediaSink(IMFMediaSink *sink, IMFAttributes { TRACE("%p, %p, %p.\n", sink, attributes, writer); + if (!writer) + return E_INVALIDARG; + return create_sink_writer_from_sink(sink, attributes, &IID_IMFSinkWriter, (void **)writer); } @@ -289,6 +297,8 @@ HRESULT create_sink_writer_from_url(const WCHAR *url, IMFByteStream *bytestream, CLSID clsid; HRESULT hr; + *out = NULL; + if (!url && !bytestream) return E_INVALIDARG; @@ -332,5 +342,8 @@ HRESULT WINAPI MFCreateSinkWriterFromURL(const WCHAR *url, IMFByteStream *bytest { TRACE("%s, %p, %p, %p.\n", debugstr_w(url), bytestream, attributes, writer); + if (!writer) + return E_INVALIDARG; + return create_sink_writer_from_url(url, bytestream, attributes, &IID_IMFSinkWriter, (void **)writer); } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/663