[vlc-devel] commit: codec_cmml: fix memleaks ( and maybe a proble while opening browser under linux). ( Rémi Duraffort )
git version control
git at videolan.org
Mon Jan 26 22:57:38 CET 2009
vlc | branch: master | Rémi Duraffort <ivoire at videolan.org> | Mon Jan 26 22:33:00 2009 +0100| [e3895ba9fd5709f60af6d0f517ae5eb334de40aa] | committer: Rémi Duraffort
codec_cmml: fix memleaks (and maybe a proble while opening browser under linux).
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e3895ba9fd5709f60af6d0f517ae5eb334de40aa
---
modules/codec/cmml/browser_open.c | 43 ++++++++++++++++++++++++-------------
1 files changed, 28 insertions(+), 15 deletions(-)
diff --git a/modules/codec/cmml/browser_open.c b/modules/codec/cmml/browser_open.c
index 5a1edb7..4295a5f 100644
--- a/modules/codec/cmml/browser_open.c
+++ b/modules/codec/cmml/browser_open.c
@@ -28,29 +28,38 @@
# include "config.h"
#endif
-#include "xstrcat.h"
+#include <stdio.h>
+#include <stdlib.h>
+
#include "browser_open.h"
+
int browser_Open( const char *psz_url )
{
#ifdef __APPLE__
char *psz_open_commandline;
+ int i_ret;
- psz_open_commandline = strdup( "/usr/bin/open " );
- psz_open_commandline = xstrcat( psz_open_commandline, psz_url );
+ if( asprintf( &psz_open_commandline, "/usr/bin/open %s", psz_url ) == -1 )
+ return -1;
- return system( psz_open_commandline );
+ i_ret = system( psz_open_commandline );
+ free( psz_open_commandline );
+ return i_ret;
#elif defined( UNDER_CE )
return -1;
#elif defined( WIN32 )
char *psz_open_commandline;
+ int i_ret;
- psz_open_commandline = strdup( "explorer " );
- xstrcat( psz_open_commandline, psz_url );
+ if( asprintf( &psz_open_commandline, "explorer %s", psz_url ) == -1 )
+ return -1;
- return system( psz_open_commandline );
+ i_ret = system( psz_open_commandline );
+ free( psz_open_commandline );
+ return i_ret;
#else
/* Assume we're on a UNIX of some sort */
@@ -58,18 +67,22 @@ int browser_Open( const char *psz_url )
int i_ret;
/* Debian uses www-browser */
- psz_open_commandline = strdup( "www-browser" );
- xstrcat( psz_open_commandline, psz_url );
- i_ret = system( psz_open_commandline );
-
- if( i_ret == 0 ) return 0;
+ if( asprintf( &psz_open_commandline, "www-browser %s", psz_url ) == -1 )
+ return -1;
+ i_ret = system( psz_open_commandline );
free( psz_open_commandline );
+ if( i_ret == 0 )
+ return 0;
+
/* Try mozilla */
- psz_open_commandline = strdup( "mozilla" );
- xstrcat( psz_open_commandline, psz_url );
- return system( psz_open_commandline );
+ if( asprintf( &psz_open_commandline, "mozilla %s", psz_url ) == -1 )
+ return -1;
+
+ i_ret = system( psz_open_commandline );
+ free( psz_open_commandline );
+ return i_ret;
#endif
}
More information about the vlc-devel
mailing list