vlc | branch: master | Thomas Guillem <[email protected]> | Thu Jun 29 16:55:58 2017 +0200| [7cbd3b6b824e826d43021dac329c447e37a5699d] | committer: Thomas Guillem
gl: vaapi: fix VADisplay leak in error path > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7cbd3b6b824e826d43021dac329c447e37a5699d --- modules/video_output/opengl/converter_vaapi.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/video_output/opengl/converter_vaapi.c b/modules/video_output/opengl/converter_vaapi.c index c6ff72fd8e..6485eab8b7 100644 --- a/modules/video_output/opengl/converter_vaapi.c +++ b/modules/video_output/opengl/converter_vaapi.c @@ -296,10 +296,12 @@ tc_vaegl_init(opengl_tex_converter_t *tc, VADisplay *vadpy) if (vadpy == NULL) return VLC_EGENERIC; + int ret = VLC_ENOMEM; struct priv *priv = tc->priv = calloc(1, sizeof(struct priv)); if (unlikely(tc->priv == NULL)) - return VLC_ENOMEM; + goto error; + ret = VLC_EGENERIC; priv->vadpy = vadpy; priv->fourcc = 0; @@ -326,10 +328,7 @@ tc_vaegl_init(opengl_tex_converter_t *tc, VADisplay *vadpy) goto error; if (tc_va_check_interop_blacklist(tc, priv->vadpy)) - { - vaTerminate(priv->vadpy); goto error; - } if (vlc_vaapi_SetInstance(priv->vadpy)) { @@ -342,13 +341,15 @@ tc_vaegl_init(opengl_tex_converter_t *tc, VADisplay *vadpy) if (tc->fshader == 0) { vlc_vaapi_ReleaseInstance(priv->vadpy); - goto error; + free(tc->priv); + return ret; } return VLC_SUCCESS; error: + vaTerminate(vadpy); free(tc->priv); - return VLC_EGENERIC; + return ret; } int _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
