[vlc-devel] commit: Check asprintf return value. ( Rémi Duraffort )

git version control git at videolan.org
Wed Aug 13 23:24:05 CEST 2008


vlc | branch: master | Rémi Duraffort <ivoire at videolan.org> | Wed Aug 13 22:35:34 2008 +0200| [322cd225871a785882bb579f207107d7e2e683ee] | committer: Rémi Duraffort 

Check asprintf return value.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=322cd225871a785882bb579f207107d7e2e683ee
---

 modules/codec/cmml/intf.c   |    3 +-
 modules/codec/realaudio.c   |   49 ++++++++++++++++++++++++------------------
 modules/control/http/util.c |   13 ++++++-----
 modules/demux/asf/libasf.c  |    9 +++++--
 4 files changed, 43 insertions(+), 31 deletions(-)

diff --git a/modules/codec/cmml/intf.c b/modules/codec/cmml/intf.c
index 5f58b30..9704096 100644
--- a/modules/codec/cmml/intf.c
+++ b/modules/codec/cmml/intf.c
@@ -584,7 +584,8 @@ char *GetTimedURIFragmentForTime( int seconds )
 {
     char *psz_time;
 
-    asprintf( &psz_time, "%d", seconds );
+    if( asprintf( &psz_time, "%d", seconds ) == -1 )
+        return NULL;
     return psz_time;
 }
 
diff --git a/modules/codec/realaudio.c b/modules/codec/realaudio.c
index c496908..6930827 100644
--- a/modules/codec/realaudio.c
+++ b/modules/codec/realaudio.c
@@ -345,19 +345,22 @@ static int OpenDll( decoder_t *p_dec )
     for( i = 0; ppsz_path[i]; i++ )
     {
         /* Old format */
-        asprintf( &psz_dll, "%s/%4.4s.so.6.0", ppsz_path[i],
-                  (char *)&p_dec->fmt_in.i_codec );
-        i_result = OpenNativeDll( p_dec, ppsz_path[i], psz_dll );
-        free( psz_dll );
-        if( i_result == VLC_SUCCESS ) return VLC_SUCCESS;
+        if( asprintf( &psz_dll, "%s/%4.4s.so.6.0", ppsz_path[i],
+                  (char *)&p_dec->fmt_in.i_codec ) != -1 )
+        {
+            i_result = OpenNativeDll( p_dec, ppsz_path[i], psz_dll );
+            free( psz_dll );
+            if( i_result == VLC_SUCCESS ) return VLC_SUCCESS;
+        }
 
         /* New format */
-        asprintf( &psz_dll, "%s/%4.4s.so", ppsz_path[i],
-                  (char *)&p_dec->fmt_in.i_codec );
-        i_result = OpenNativeDll( p_dec, ppsz_path[i], psz_dll );
-        free( psz_dll );
-        if( i_result == VLC_SUCCESS ) return VLC_SUCCESS;
-
+        if( asprintf( &psz_dll, "%s/%4.4s.so", ppsz_path[i],
+                  (char *)&p_dec->fmt_in.i_codec ) != -1 )
+        {
+            i_result = OpenNativeDll( p_dec, ppsz_path[i], psz_dll );
+            free( psz_dll );
+            if( i_result == VLC_SUCCESS ) return VLC_SUCCESS;
+        }
     }
 #endif
 
@@ -366,18 +369,22 @@ static int OpenDll( decoder_t *p_dec )
     for( i = 0; ppsz_path[i]; i++ )
     {
         /* New format */
-        asprintf( &psz_dll, "%s\\%4.4s.dll", ppsz_path[i],
-                  (char *)&p_dec->fmt_in.i_codec );
-        i_result = OpenWin32Dll( p_dec, ppsz_path[i], psz_dll );
-        free( psz_dll );
-        if( i_result == VLC_SUCCESS ) return VLC_SUCCESS;
+        if( asprintf( &psz_dll, "%s\\%4.4s.dll", ppsz_path[i],
+                  (char *)&p_dec->fmt_in.i_codec ) != -1 )
+        {
+            i_result = OpenWin32Dll( p_dec, ppsz_path[i], psz_dll );
+            free( psz_dll );
+            if( i_result == VLC_SUCCESS ) return VLC_SUCCESS;
+        }
 
         /* Old format */
-        asprintf( &psz_dll, "%s\\%4.4s3260.dll", ppsz_path[i],
-                  (char *)&p_dec->fmt_in.i_codec );
-        i_result = OpenWin32Dll( p_dec, ppsz_path[i], psz_dll );
-        free( psz_dll );
-        if( i_result == VLC_SUCCESS ) return VLC_SUCCESS;
+        if( asprintf( &psz_dll, "%s\\%4.4s3260.dll", ppsz_path[i],
+                  (char *)&p_dec->fmt_in.i_codec ) != -1 )
+        {
+            i_result = OpenWin32Dll( p_dec, ppsz_path[i], psz_dll );
+            free( psz_dll );
+            if( i_result == VLC_SUCCESS ) return VLC_SUCCESS;
+        }
     }
 #endif
 
diff --git a/modules/control/http/util.c b/modules/control/http/util.c
index 067d4bb..cd84f68 100644
--- a/modules/control/http/util.c
+++ b/modules/control/http/util.c
@@ -315,13 +315,14 @@ int ParseDirectory( intf_thread_t *p_intf, char *psz_root,
 
                 if( b_index && ( p = strstr( f->file, "index." ) ) )
                 {
-                    asprintf( &psz_redir, "%s%s", f->name, p );
-
-                    msg_Dbg( p_intf, "redir=%s -> %s", psz_redir, f->name );
-                    f->p_redir2 = httpd_RedirectNew( p_sys->p_httpd_host,
-                                                     f->name, psz_redir );
+                    if( asprintf( &psz_redir, "%s%s", f->name, p ) != -1 )
+                    {
+                        msg_Dbg( p_intf, "redir=%s -> %s", psz_redir, f->name );
+                        f->p_redir2 = httpd_RedirectNew( p_sys->p_httpd_host,
+                                                         f->name, psz_redir );
 
-                    free( psz_redir );
+                        free( psz_redir );
+                    }
                 }
             }
         }
diff --git a/modules/demux/asf/libasf.c b/modules/demux/asf/libasf.c
index 6c75aa7..46183cb 100644
--- a/modules/demux/asf/libasf.c
+++ b/modules/demux/asf/libasf.c
@@ -1190,17 +1190,20 @@ static int ASF_ReadObject_extended_content_description( stream_t *s,
         else if( i_type == 3 )
         {
             /* DWord */
-            asprintf( &p_ec->ppsz_value[i], "%d", ASF_READ4() );
+            if( asprintf( &p_ec->ppsz_value[i], "%d", ASF_READ4() ) == -1 )
+                p_ec->ppsz_value[i] = NULL;
         }
         else if( i_type == 4 )
         {
             /* QWord */
-            asprintf( &p_ec->ppsz_value[i], "%"PRId64, ASF_READ8() );
+            if( asprintf( &p_ec->ppsz_value[i], "%"PRId64, ASF_READ8() ) == -1 )
+                p_ec->ppsz_value[i] = NULL;
         }
         else if( i_type == 5 )
         {
             /* Word */
-            asprintf( &p_ec->ppsz_value[i], "%d", ASF_READ2() );
+            if( asprintf( &p_ec->ppsz_value[i], "%d", ASF_READ2() ) == -1 )
+                p_ec->ppsz_value[i] = NULL;
         }
         else
         {




More information about the vlc-devel mailing list