From: RĂ©mi Duraffort Date: Wed, 20 Aug 2008 17:53:59 +0000 (+0200) Subject: Fix memleaks and one potential memleak (and move a test where it might be) X-Git-Tag: 0.9.0~178 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=558e2336eba38c3215264475c6e580c15bde758e;p=vlc Fix memleaks and one potential memleak (and move a test where it might be) --- diff --git a/modules/access_output/shout.c b/modules/access_output/shout.c index ad72311c07..c51704a6ea 100644 --- a/modules/access_output/shout.c +++ b/modules/access_output/shout.c @@ -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;