]> git.sesse.net Git - vlc/commitdiff
Don't pass relative file paths when using --one-instance
authorPierre Ynard <linkfanel@yahoo.fr>
Thu, 27 Jan 2011 14:36:43 +0000 (15:36 +0100)
committerPierre Ynard <linkfanel@yahoo.fr>
Thu, 27 Jan 2011 14:36:43 +0000 (15:36 +0100)
Fixes Debian bug #600269

src/libvlc.c

index 270701da5eacc08e45e4bd4f4b2d078b6d9c7402..3647d4d3777f53be71f3d9952d64aabfae4c0071 100644 (file)
@@ -564,8 +564,12 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
 
                 for( i_input = vlc_optind; i_input < i_argc;i_input++ )
                 {
+                    /* We need to resolve relative paths in this instance */
+                    char *psz_mrl = make_URI( ppsz_argv[i_input], NULL );
+                    if( psz_mrl == NULL )
+                        continue;
                     msg_Dbg( p_libvlc, "Adds %s to the running Media Player",
-                            ppsz_argv[i_input] );
+                             psz_mrl );
 
                     p_dbus_msg = dbus_message_new_method_call(
                             "org.mpris.vlc", "/TrackList",
@@ -574,6 +578,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
                     if ( NULL == p_dbus_msg )
                     {
                         msg_Err( p_libvlc, "D-Bus problem" );
+                        free( psz_mrl );
                         system_End( p_libvlc );
                         exit( 1 );
                     }
@@ -581,12 +586,14 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
                     /* append MRLs */
                     dbus_message_iter_init_append( p_dbus_msg, &dbus_args );
                     if ( !dbus_message_iter_append_basic( &dbus_args,
-                                DBUS_TYPE_STRING, &ppsz_argv[i_input] ) )
+                                DBUS_TYPE_STRING, &psz_mrl ) )
                     {
                         dbus_message_unref( p_dbus_msg );
+                        free( psz_mrl );
                         system_End( p_libvlc );
                         exit( 1 );
                     }
+                    free( psz_mrl );
                     b_play = TRUE;
                     if( var_InheritBool( p_libvlc, "playlist-enqueue" ) )
                         b_play = FALSE;