[SCM] VLC media player packaging branch, sid, updated. debian/1.0.5-1-9-g4136aa2

xtophe-guest at users.alioth.debian.org xtophe-guest at users.alioth.debian.org
Mon Mar 1 22:41:51 UTC 2010


The following commit has been merged in the sid branch:
commit 4136aa2445a1a681de4ba52163861105745f480f
Author: Christophe Mutricy <xtophe at videolan.org>
Date:   Mon Mar 1 22:33:54 2010 +0000

    Fix crash in FTP url handling
    
    Patch taken upstream
    LP: #465560

diff --git a/debian/patches/505-ftp-crash.patch b/debian/patches/505-ftp-crash.patch
new file mode 100644
index 0000000..100e169
--- /dev/null
+++ b/debian/patches/505-ftp-crash.patch
@@ -0,0 +1,79 @@
+commit 4eae7755498cc56d56b5703907717054cbe805e3
+Author: Rémi Denis-Courmont <remi at remlab.net>
+Date:   Sun Feb 28 18:53:52 2010 +0200
+
+    FTP: handle ftp://HOST correctly
+    
+    This should fix LP#465560 - segmentation fault in strstr()
+    (cherry picked from commit 7056f7113ecf94d1a87a0ee22840f25537ff66ab)
+
+diff --git a/modules/access/ftp.c b/modules/access/ftp.c
+index dffea0d..295c6ac 100644
+--- a/modules/access/ftp.c
++++ b/modules/access/ftp.c
+@@ -305,8 +305,8 @@ static int parseURL( vlc_url_t *url, const char *path )
+     /* FTP URLs are relative to user's default directory (RFC1738 §3.2)
+     For absolute path use ftp://foo.bar//usr/local/etc/filename */
+     /* FIXME: we should issue a series of CWD, one per slash */
+-    if( url->psz_path && *url->psz_path == '/' )
+-        url->psz_path++;
++    if( url->psz_path == NULL )
++        return VLC_SUCCESS;
+ 
+     char *type = strstr( url->psz_path, ";type=" );
+     if( type )
+@@ -342,15 +342,16 @@ static int InOpen( vlc_object_t *p_this )
+         goto exit_error;
+ 
+     /* get size */
+-    if( ftp_SendCommand( p_this, p_sys, "SIZE %s", p_sys->url.psz_path
+-                                               ? p_sys->url.psz_path : "" ) < 0
++    if( p_sys->url.psz_path == NULL )
++        p_sys->directory = true;
++    else
++    if( ftp_SendCommand( p_this, p_sys, "SIZE %s", p_sys->url.psz_path ) < 0
+      || ftp_ReadCommand( p_this, p_sys, NULL, &psz_arg ) != 2 )
+     {
+         msg_Dbg( p_access, "cannot get file size" );
+         msg_Dbg( p_access, "will try to get directory contents" );
+-        if( ftp_SendCommand( p_this, p_sys, "CWD %s", p_sys->url.psz_path
+-                             ? p_sys->url.psz_path : "" ) < 0 ||
+-        ftp_ReadCommand( p_this, p_sys, NULL, &psz_arg ) != 2 )
++        if( ftp_SendCommand( p_this, p_sys, "CWD %s", p_sys->url.psz_path ) < 0
++         || ftp_ReadCommand( p_this, p_sys, NULL, &psz_arg ) != 2 )
+         {
+             msg_Err( p_access, "file or directory doesn't exist" );
+             net_Close( p_sys->fd_cmd );
+@@ -399,6 +400,11 @@ static int OutOpen( vlc_object_t *p_this )
+ 
+     if( parseURL( &p_sys->url, p_access->psz_path ) )
+         goto exit_error;
++    if( p_sys->url.psz_path == NULL )
++    {
++        msg_Err( p_this, "no filename specified" );
++        goto exit_error;
++    }
+ 
+     if( Connect( p_this, p_sys ) )
+         goto exit_error;
+@@ -514,7 +520,7 @@ static ssize_t Read( access_t *p_access, uint8_t *p_buffer, size_t i_len )
+         }
+         else
+         {
+-            snprintf( (char*)p_buffer, i_len, "ftp://%s:%d/%s/%s\n",
++            snprintf( (char*)p_buffer, i_len, "ftp://%s:%d%s/%s\n",
+                       p_sys->url.psz_host, p_sys->url.i_port,
+                       p_sys->url.psz_path, psz_line );
+             free( psz_line );
+@@ -807,9 +813,10 @@ static int ftp_StartStream( vlc_object_t *p_access, access_sys_t *p_sys,
+     else
+     {
+         /* "1xx" message */
++        assert( p_sys->url.psz_path );
+         if( ftp_SendCommand( p_access, p_sys, "%s %s",
+                              p_sys->out ? "STOR" : "RETR",
+-                           p_sys->url.psz_path ? p_sys->url.psz_path : "" ) < 0
++                             p_sys->url.psz_path ) < 0
+          || ftp_ReadCommand( p_access, p_sys, &i_answer, NULL ) > 2 )
+         {
+             msg_Err( p_access, "cannot retrieve file" );
diff --git a/debian/patches/series b/debian/patches/series
index 82656f8..38fa83d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -9,3 +9,4 @@
 502_fix_typo.patch
 503_jack_input.diff
 504-rtmp-crash.patch
+505-ftp-crash.patch

-- 
VLC media player packaging



More information about the pkg-multimedia-commits mailing list