vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Wed Nov 8 18:20:21 2017 +0200| [e96bd27d25ac9cd9a0d85ad6ce825ab90c506248] | committer: Rémi Denis-Courmont
old http: fix error handling (fixes #19051) > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e96bd27d25ac9cd9a0d85ad6ce825ab90c506248 --- modules/access/http.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/modules/access/http.c b/modules/access/http.c index 1ace2db902..fe909d2081 100644 --- a/modules/access/http.c +++ b/modules/access/http.c @@ -288,14 +288,14 @@ static int Open( vlc_object_t *p_this ) connect: /* Connect */ if( Connect( p_access ) ) - goto error; + goto disconnect; if( p_sys->i_code == 401 ) { if( p_sys->auth.psz_realm == NULL ) { msg_Err( p_access, "authentication failed without realm" ); - goto error; + goto disconnect; } /* FIXME ? */ if( p_sys->url.psz_username && p_sys->url.psz_password && @@ -322,7 +322,7 @@ connect: p_sys->psz_username = strdup(credential.psz_username); p_sys->psz_password = strdup(credential.psz_password); if (!p_sys->psz_username || !p_sys->psz_password) - goto error; + goto disconnect; msg_Err( p_access, "retrying with user=%s", p_sys->psz_username ); p_sys->url.psz_username = p_sys->psz_username; p_sys->url.psz_password = p_sys->psz_password; @@ -330,7 +330,7 @@ connect: goto connect; } else - goto error; + goto disconnect; } else vlc_credential_store( &credential, p_access ); @@ -342,7 +342,7 @@ connect: p_access->psz_url = p_sys->psz_location; p_sys->psz_location = NULL; ret = VLC_ACCESS_REDIRECT; - goto error; + goto disconnect; } if( p_sys->b_reconnect ) msg_Dbg( p_access, "auto re-connect enabled" ); @@ -356,6 +356,9 @@ connect: return VLC_SUCCESS; +disconnect: + Disconnect( p_access ); + error: vlc_credential_clean( &credential ); vlc_UrlClean( &p_sys->url ); @@ -369,8 +372,6 @@ error: free( p_sys->psz_username ); free( p_sys->psz_password ); - Disconnect( p_access ); - return ret; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
