Commit 558e2336 authored by Rémi Duraffort's avatar Rémi Duraffort

Fix memleaks and one potential memleak (and move a test where it might be)

parent 381f286d
......@@ -183,10 +183,6 @@ static int Open( vlc_object_t *p_this )
config_ChainParse( p_access, SOUT_CFG_PREFIX, ppsz_sout_options, p_access->p_cfg );
psz_accessname = psz_parser = strdup( p_access->psz_path );
if( !psz_parser )
return VLC_ENOMEM;
if( !p_access->psz_path )
{
msg_Err( p_access,
......@@ -194,6 +190,10 @@ static int Open( vlc_object_t *p_this )
return VLC_EGENERIC;
}
psz_accessname = psz_parser = strdup( p_access->psz_path );
if( !psz_parser )
return VLC_ENOMEM;
/* Parse connection data user:pwd@host:port/mountpoint */
psz_user = psz_parser;
while( psz_parser[0] && psz_parser[0] != ':' ) psz_parser++;
......@@ -262,6 +262,10 @@ static int Open( vlc_object_t *p_this )
psz_host, i_port, psz_mount );
free( p_access->p_sys );
free( psz_accessname );
free( psz_name );
free( psz_description );
free( psz_genre );
free( psz_url );
return VLC_EGENERIC;
}
......@@ -293,6 +297,7 @@ static int Open( vlc_object_t *p_this )
if( i_ret != SHOUTERR_SUCCESS )
{
msg_Err( p_access, "failed to set the information about the bitrate" );
free( val.psz_string );
free( p_access->p_sys );
free( psz_accessname );
return VLC_EGENERIC;
......@@ -318,6 +323,7 @@ static int Open( vlc_object_t *p_this )
if( i_ret != SHOUTERR_SUCCESS )
{
msg_Err( p_access, "failed to set the information about the samplerate" );
free( val.psz_string );
free( p_access->p_sys );
free( psz_accessname );
return VLC_EGENERIC;
......@@ -333,6 +339,7 @@ static int Open( vlc_object_t *p_this )
if( i_ret != SHOUTERR_SUCCESS )
{
msg_Err( p_access, "failed to set the information about the number of channels" );
free( val.psz_string );
free( p_access->p_sys );
free( psz_accessname );
return VLC_EGENERIC;
......@@ -348,6 +355,7 @@ static int Open( vlc_object_t *p_this )
if( i_ret != SHOUTERR_SUCCESS )
{
msg_Err( p_access, "failed to set the information about Ogg Vorbis quality" );
free( val.psz_string );
free( p_access->p_sys );
free( psz_accessname );
return VLC_EGENERIC;
......
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