mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-09-19 12:56:40 +00:00
avdevice/dshow_capture: Fix error handling in ff_dshow_##prefix##_Create()
Untested, needs review
Fixes: CID1591856 Resource leak
Fixes: CID1591887 Resource leak
Fixes: CID1591874 Resource leak
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 348968e9f7
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
ff443c8ab0
commit
6737f26da3
@ -125,14 +125,15 @@ void ff_dshow_##prefix##_Destroy(class *this) \
|
||||
class *ff_dshow_##prefix##_Create(__VA_ARGS__) \
|
||||
{ \
|
||||
class *this = CoTaskMemAlloc(sizeof(class)); \
|
||||
void *vtbl = CoTaskMemAlloc(sizeof(*this->vtbl)); \
|
||||
dshowdebug("ff_dshow_"AV_STRINGIFY(prefix)"_Create(%p)\n", this); \
|
||||
if (!this || !vtbl) \
|
||||
if (!this) \
|
||||
goto fail; \
|
||||
ZeroMemory(this, sizeof(class)); \
|
||||
ZeroMemory(vtbl, sizeof(*this->vtbl)); \
|
||||
this->vtbl = CoTaskMemAlloc(sizeof(*this->vtbl)); \
|
||||
if (!this->vtbl) \
|
||||
goto fail; \
|
||||
ZeroMemory(this->vtbl, sizeof(*this->vtbl)); \
|
||||
this->ref = 1; \
|
||||
this->vtbl = vtbl; \
|
||||
if (!setup) \
|
||||
goto fail; \
|
||||
dshowdebug("created ff_dshow_"AV_STRINGIFY(prefix)" %p\n", this); \
|
||||
|
Loading…
Reference in New Issue
Block a user