]> git.sesse.net Git - vlc/commitdiff
ftp: fix leak
authorRémi Denis-Courmont <remi@remlab.net>
Fri, 14 Nov 2014 17:20:53 +0000 (19:20 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Fri, 14 Nov 2014 17:20:53 +0000 (19:20 +0200)
modules/access/ftp.c

index aa42a31dd6b9d9adb436cfa48c404cb858920825..5224e7eb0d751a19eae4ea8580b83d5e0f96b194 100644 (file)
@@ -310,7 +310,6 @@ static void clearCmdTLS( access_sys_t *p_sys )
 static int Login( vlc_object_t *p_access, access_sys_t *p_sys )
 {
     int i_answer;
-    char *psz;
 
     /* *** Open a TCP connection with server *** */
     int fd = p_sys->cmd.fd = net_ConnectTCP( p_access, p_sys->url.psz_host,
@@ -341,13 +340,6 @@ static int Login( vlc_object_t *p_access, access_sys_t *p_sys )
 
     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 */
     if( ftp_SendCommand( p_access, p_sys, "FEAT" ) < 0
      || ftp_RecvAnswer( p_access, p_sys, NULL, NULL,
@@ -388,7 +380,6 @@ static int Login( vlc_object_t *p_access, access_sys_t *p_sys )
             i_answer != 200 )
         {
             msg_Err( p_access, "Can't truncate Protection buffer size for TLS" );
-            free( psz );
             goto error;
         }
 
@@ -397,12 +388,20 @@ static int Login( vlc_object_t *p_access, access_sys_t *p_sys )
             i_answer != 200 )
         {
             msg_Err( p_access, "Can't set Data channel protection" );
-            free( psz );
             goto error;
         }
     }
 
     /* 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 ||
         ftp_RecvCommand( p_access, p_sys, &i_answer, NULL ) < 0 )
     {