]> git.sesse.net Git - vlc/commitdiff
demux/playlit/*: Check asprintf return malloc.
authorRémi Duraffort <ivoire@videolan.org>
Wed, 3 Sep 2008 20:06:10 +0000 (22:06 +0200)
committerRémi Duraffort <ivoire@videolan.org>
Wed, 3 Sep 2008 20:07:11 +0000 (22:07 +0200)
modules/demux/playlist/asx.c
modules/demux/playlist/dvb.c
modules/demux/playlist/playlist.c
modules/demux/playlist/sgimb.c

index 08b0b25ea2d64edc567f00f372a54f64f5fdf07d..a66e2287583c84761f902515311aa124e38e0148 100644 (file)
@@ -504,35 +504,42 @@ static int Demux( demux_t *p_demux )
                 {
                     if( i_starttime || i_duration )
                     {
-                        if( i_starttime ) {
-                            asprintf(ppsz_options+i_options, ":start-time=%d", i_starttime);
-                            ++i_options;
+                        if( i_starttime )
+                        {
+                            if( asprintf(ppsz_options+i_options, ":start-time=%d", i_starttime) == -1 )
+                                *(ppsz_options+i_options) = NULL;
+                            else
+                                ++i_options;
                         }
-                        if( i_duration ) {
-                            asprintf(ppsz_options+i_options, ":stop-time=%d", i_starttime + i_duration);
-                            ++i_options;
+                        if( i_duration )
+                        {
+                            if( asprintf(ppsz_options+i_options, ":stop-time=%d", i_starttime + i_duration) == -1 )
+                                *(ppsz_options+i_options) = NULL;
+                            else
+                                ++i_options;
                         }
                     }
 
                     /* create the new entry */
-                    asprintf( &psz_name, "%d %s", i_entry_count, ( psz_title_entry ? psz_title_entry : p_current_input->psz_name ) );
-
-                    p_entry = input_item_NewExt( p_demux, psz_href, psz_name, i_options, (const char * const *)ppsz_options, -1 );
-                    FREENULL( psz_name );
-                    input_item_CopyOptions( p_current_input, p_entry );
-                    while( i_options )
+                    if( asprintf( &psz_name, "%d %s", i_entry_count, ( psz_title_entry ? psz_title_entry : p_current_input->psz_name ) ) != -1 )
                     {
-                        psz_name = ppsz_options[--i_options];
-                        FREENULL(psz_name);
-                    }
+                        p_entry = input_item_NewExt( p_demux, psz_href, psz_name, i_options, (const char * const *)ppsz_options, -1 );
+                        FREENULL( psz_name );
+                        input_item_CopyOptions( p_current_input, p_entry );
+                        while( i_options )
+                        {
+                            psz_name = ppsz_options[--i_options];
+                            FREENULL( psz_name );
+                        }
 
-                    if( psz_title_entry ) input_item_SetTitle( p_entry, psz_title_entry );
-                    if( psz_artist_entry ) input_item_SetArtist( p_entry, psz_artist_entry );
-                    if( psz_copyright_entry ) input_item_SetCopyright( p_entry, psz_copyright_entry );
-                    if( psz_moreinfo_entry ) input_item_SetURL( p_entry, psz_moreinfo_entry );
-                    if( psz_abstract_entry ) input_item_SetDescription( p_entry, psz_abstract_entry );
-                    input_item_AddSubItem( p_current_input, p_entry );
-                    vlc_gc_decref( p_entry );
+                        if( psz_title_entry ) input_item_SetTitle( p_entry, psz_title_entry );
+                        if( psz_artist_entry ) input_item_SetArtist( p_entry, psz_artist_entry );
+                        if( psz_copyright_entry ) input_item_SetCopyright( p_entry, psz_copyright_entry );
+                        if( psz_moreinfo_entry ) input_item_SetURL( p_entry, psz_moreinfo_entry );
+                        if( psz_abstract_entry ) input_item_SetDescription( p_entry, psz_abstract_entry );
+                        input_item_AddSubItem( p_current_input, p_entry );
+                        vlc_gc_decref( p_entry );
+                    }
                 }
 
                 /* cleanup entry */;
index 904be67cd4f431eeadf962b3ea2038a044162a13..2e00cd0e5f6c3698dbdda45af833418ee1a455db 100644 (file)
@@ -288,17 +288,17 @@ static int ParseLine( char *psz_line, char **ppsz_name,
     {
         char *psz_option;
 
-        asprintf( &psz_option, "program=%i", i_program );
-        INSERT_ELEM( *pppsz_options, (*pi_options), (*pi_options),
-                     psz_option );
+        if( asprintf( &psz_option, "program=%i", i_program ) != -1 )
+            INSERT_ELEM( *pppsz_options, (*pi_options), (*pi_options),
+                         psz_option );
     }
     if( i_frequency && pppsz_options && pi_options )
     {
         char *psz_option;
 
-        asprintf( &psz_option, "dvb-frequency=%i", i_frequency );
-        INSERT_ELEM( *pppsz_options, (*pi_options), (*pi_options),
-                     psz_option );
+        if( asprintf( &psz_option, "dvb-frequency=%i", i_frequency ) != -1 )
+            INSERT_ELEM( *pppsz_options, (*pi_options), (*pi_options),
+                         psz_option );
     }
     if( ppsz_name && psz_name ) *ppsz_name = strdup( psz_name );
 
index 657e1fc9d89ba3420a256e40e7d4ff1c6d2bd216..3b8374d5e14ca9092dc6f739e74721979a3533a8 100644 (file)
@@ -180,6 +180,8 @@ char *ProcessMRL( char *psz_mrl, char *psz_prefix )
     if( strchr( psz_mrl, ':' ) ) return strdup( psz_mrl );
 
     /* This a relative path, prepend the prefix */
-    asprintf( &psz_mrl, "%s%s", psz_prefix, psz_mrl );
-    return psz_mrl;
+    if( asprintf( &psz_mrl, "%s%s", psz_prefix, psz_mrl ) != -1 )
+        return psz_mrl;
+    else
+        return NULL;
 }
index 612e5e763a204b3d4a9d8d9ccbce6c11096a5655..878a41a7196ad2605f94ec012ba72e1f5f842fa0 100644 (file)
@@ -326,15 +326,23 @@ static int Demux ( demux_t *p_demux )
         /* Definetly schedules multicast session */
         /* We don't care if it's live or not */
         free( p_sys->psz_uri );
-        asprintf( &p_sys->psz_uri, "udp://@" "%s:%i", p_sys->psz_mcast_ip, p_sys->i_mcast_port );
+        if( asprintf( &p_sys->psz_uri, "udp://@" "%s:%i", p_sys->psz_mcast_ip, p_sys->i_mcast_port ) == -1 )
+        {
+            p_sys->psz_uri = NULL;
+            return -1;
+        }
     }
 
     if( p_sys->psz_uri == NULL )
     {
         if( p_sys->psz_server && p_sys->psz_location )
         {
-            asprintf( &p_sys->psz_uri, "rtsp://" "%s:%i%s",
-                     p_sys->psz_server, p_sys->i_port > 0 ? p_sys->i_port : 554, p_sys->psz_location );
+            if( asprintf( &p_sys->psz_uri, "rtsp://" "%s:%i%s",
+                     p_sys->psz_server, p_sys->i_port > 0 ? p_sys->i_port : 554, p_sys->psz_location ) == -1 )
+            {
+                p_sys->psz_uri = NULL;
+                return -1;
+            }
         }
     }
 
@@ -349,8 +357,12 @@ static int Demux ( demux_t *p_demux )
         }
 
         free( p_sys->psz_uri );
-        asprintf( &p_sys->psz_uri, "%s%%3FMeDiAbAsEshowingId=%d%%26MeDiAbAsEconcert%%3FMeDiAbAsE",
-                p_sys->psz_uri, p_sys->i_sid );
+        if( asprintf( &p_sys->psz_uri, "%s%%3FMeDiAbAsEshowingId=%d%%26MeDiAbAsEconcert%%3FMeDiAbAsE",
+                p_sys->psz_uri, p_sys->i_sid ) == -1 )
+        {
+            p_sys->psz_uri = NULL;
+            return -1;
+        }
     }
 
     p_child = input_item_NewWithType( VLC_OBJECT(p_demux), p_sys->psz_uri,
@@ -368,23 +380,29 @@ static int Demux ( demux_t *p_demux )
     {
         char *psz_option;
         p_sys->i_packet_size += 1000;
-        asprintf( &psz_option, "mtu=%i", p_sys->i_packet_size );
-        input_item_AddOption( p_child, psz_option );
-        free( psz_option );
+        if( asprintf( &psz_option, "mtu=%i", p_sys->i_packet_size ) != -1 )
+        {
+            input_item_AddOption( p_child, psz_option );
+            free( psz_option );
+        }
     }
     if( !p_sys->psz_mcast_ip )
     {
         char *psz_option;
-        asprintf( &psz_option, "rtsp-caching=5000" );
-        input_item_AddOption( p_child, psz_option );
-        free( psz_option );
+        if( asprintf( &psz_option, "rtsp-caching=5000" ) != -1 )
+        {
+            input_item_AddOption( p_child, psz_option );
+            free( psz_option );
+        }
     }
     if( !p_sys->psz_mcast_ip && p_sys->b_rtsp_kasenna )
     {
         char *psz_option;
-        asprintf( &psz_option, "rtsp-kasenna" );
-        input_item_AddOption( p_child, psz_option );
-        free( psz_option );
+        if( asprintf( &psz_option, "rtsp-kasenna" ) != -1 )
+        {
+            input_item_AddOption( p_child, psz_option );
+            free( psz_option );
+        }
     }
 
     input_item_AddSubItem( p_current_input, p_child );