[FFmpeg-devel] [PATCH 4/6] avdevice/dshow_capture: Fix error handling in ff_dshow_##prefix##_Create()
Michael Niedermayer
michael at niedermayer.cc
Sun Jul 7 21:47:27 EEST 2024
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 at niedermayer.cc>
---
libavdevice/dshow_capture.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/libavdevice/dshow_capture.h b/libavdevice/dshow_capture.h
index 81e684b9be3..bb39d4947aa 100644
--- a/libavdevice/dshow_capture.h
+++ b/libavdevice/dshow_capture.h
@@ -124,14 +124,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); \
--
2.45.2
More information about the ffmpeg-devel
mailing list