mfreadwrite/writer: Make sure output pointer is initialized.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
This commit is contained in:
Nikolay Sivov 2022-08-16 17:27:29 +03:00 committed by Alexandre Julliard
parent debf5d85dc
commit b5040bce82
2 changed files with 23 additions and 0 deletions

View file

@ -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)

View file

@ -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);
}