Commit 1d2139aa authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Fix corner case memory leak

parent 42779914
...@@ -112,18 +112,23 @@ static int OpenDecoder( vlc_object_t *p_this ) ...@@ -112,18 +112,23 @@ static int OpenDecoder( vlc_object_t *p_this )
return VLC_EGENERIC; return VLC_EGENERIC;
} }
/* Allocate the memory needed to store the decoder's structure */
p_sys = malloc(sizeof(decoder_sys_t));
if( p_sys == NULL )
return VLC_ENOMEM;
/* Initialise the schroedinger (and hence liboil libraries */ /* Initialise the schroedinger (and hence liboil libraries */
/* This does no allocation and is safe to call */ /* This does no allocation and is safe to call */
schro_init(); schro_init();
/* Initialise the schroedinger decoder */ /* Initialise the schroedinger decoder */
if( !(p_schro = schro_decoder_new()) ) return VLC_EGENERIC; if( !(p_schro = schro_decoder_new()) )
{
/* Allocate the memory needed to store the decoder's structure */ free( p_sys );
if( ( p_dec->p_sys = p_sys = return VLC_EGENERIC;
(decoder_sys_t *)malloc(sizeof(decoder_sys_t)) ) == NULL ) }
return VLC_ENOMEM;
p_dec->p_sys = p_sys;
p_sys->p_schro = p_schro; p_sys->p_schro = p_schro;
p_sys->p_format = NULL; p_sys->p_format = NULL;
p_sys->i_lastpts = -1; p_sys->i_lastpts = -1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment