From 1d20c49533b7579620607bbb4f0b7f2a122e9a56 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Sat, 7 Jun 2014 17:03:07 +0300 Subject: [PATCH] vdpau/chroma: fix leak on error --- modules/hw/vdpau/chroma.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/hw/vdpau/chroma.c b/modules/hw/vdpau/chroma.c index fa6367646f..947bdcd756 100644 --- a/modules/hw/vdpau/chroma.c +++ b/modules/hw/vdpau/chroma.c @@ -428,7 +428,7 @@ static picture_t *VideoPassthrough(filter_t *filter, picture_t *src) if (unlikely(field == NULL)) { msg_Err(filter, "corrupt VDPAU video surface"); - return NULL; + goto error; } vlc_vdp_video_frame_t *psys = field->frame; @@ -447,7 +447,7 @@ static picture_t *VideoPassthrough(filter_t *filter, picture_t *src) picture_t *pic = picture_NewFromFormat(&fmt); if (unlikely(pic == NULL)) - return NULL; + goto error; pic = VideoExport(filter, src, pic); if (pic == NULL) @@ -456,6 +456,9 @@ static picture_t *VideoPassthrough(filter_t *filter, picture_t *src) src = VideoImport(filter, pic); } return src; +error: + picture_Release(src); + return NULL; } static inline VdpVideoSurface picture_GetVideoSurface(const picture_t *pic) -- 2.20.1