Commit 13d9684a authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

ftp: fix leak

(cherry picked from commit f03324bb7ef555420b6b106a40ca833777072b26)
parent 24cb4c71
...@@ -309,7 +309,6 @@ static void clearCmdTLS( access_sys_t *p_sys ) ...@@ -309,7 +309,6 @@ static void clearCmdTLS( access_sys_t *p_sys )
static int Login( vlc_object_t *p_access, access_sys_t *p_sys ) static int Login( vlc_object_t *p_access, access_sys_t *p_sys )
{ {
int i_answer; int i_answer;
char *psz;
/* *** Open a TCP connection with server *** */ /* *** Open a TCP connection with server *** */
int fd = p_sys->cmd.fd = net_ConnectTCP( p_access, p_sys->url.psz_host, int fd = p_sys->cmd.fd = net_ConnectTCP( p_access, p_sys->url.psz_host,
...@@ -340,13 +339,6 @@ static int Login( vlc_object_t *p_access, access_sys_t *p_sys ) ...@@ -340,13 +339,6 @@ static int Login( vlc_object_t *p_access, access_sys_t *p_sys )
msg_Dbg( p_access, "connection accepted (%d)", i_answer ); msg_Dbg( p_access, "connection accepted (%d)", i_answer );
if( p_sys->url.psz_username && *p_sys->url.psz_username )
psz = strdup( p_sys->url.psz_username );
else
psz = var_InheritString( p_access, "ftp-user" );
if( !psz )
return -1;
/* Features check first */ /* Features check first */
if( ftp_SendCommand( p_access, p_sys, "FEAT" ) < 0 if( ftp_SendCommand( p_access, p_sys, "FEAT" ) < 0
|| ftp_RecvAnswer( p_access, p_sys, NULL, NULL, || ftp_RecvAnswer( p_access, p_sys, NULL, NULL,
...@@ -387,7 +379,6 @@ static int Login( vlc_object_t *p_access, access_sys_t *p_sys ) ...@@ -387,7 +379,6 @@ static int Login( vlc_object_t *p_access, access_sys_t *p_sys )
i_answer != 200 ) i_answer != 200 )
{ {
msg_Err( p_access, "Can't truncate Protection buffer size for TLS" ); msg_Err( p_access, "Can't truncate Protection buffer size for TLS" );
free( psz );
goto error; goto error;
} }
...@@ -396,12 +387,20 @@ static int Login( vlc_object_t *p_access, access_sys_t *p_sys ) ...@@ -396,12 +387,20 @@ static int Login( vlc_object_t *p_access, access_sys_t *p_sys )
i_answer != 200 ) i_answer != 200 )
{ {
msg_Err( p_access, "Can't set Data channel protection" ); msg_Err( p_access, "Can't set Data channel protection" );
free( psz );
goto error; goto error;
} }
} }
/* Send credentials over channel */ /* Send credentials over channel */
char *psz;
if( p_sys->url.psz_username && *p_sys->url.psz_username )
psz = strdup( p_sys->url.psz_username );
else
psz = var_InheritString( p_access, "ftp-user" );
if( !psz )
goto error;
if( ftp_SendCommand( p_access, p_sys, "USER %s", psz ) < 0 || if( ftp_SendCommand( p_access, p_sys, "USER %s", psz ) < 0 ||
ftp_RecvCommand( p_access, p_sys, &i_answer, NULL ) < 0 ) ftp_RecvCommand( p_access, p_sys, &i_answer, NULL ) < 0 )
{ {
......
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