]> git.sesse.net Git - vlc/commitdiff
mux: ogg: kill out of bound access warning for contenttypeless codecs.
authorFrancois Cartegnie <fcvlcdev@free.fr>
Wed, 12 Mar 2014 16:41:43 +0000 (17:41 +0100)
committerFrancois Cartegnie <fcvlcdev@free.fr>
Wed, 12 Mar 2014 16:41:43 +0000 (17:41 +0100)
modules/mux/ogg.c

index d91418cee13807beb3b22af30e53618d7c874d3d..02b844f3bb6ba46a66364b8b46b01d93d4ebe700 100644 (file)
@@ -837,12 +837,14 @@ static void OggGetSkeletonFisbone( uint8_t **pp_buffer, long *pi_size,
     if ( p_input->p_fmt->p_extra )
         SetDWLE( &(*pp_buffer)[44], xiph_CountHeaders( p_input->p_fmt->p_extra, p_input->p_fmt->i_extra ) );
 
-    psz_header = *pp_buffer + FISBONE_BASE_SIZE;
-    memcpy( psz_header, headers.psz_content_type, strlen( headers.psz_content_type ) );
-    psz_header += strlen( headers.psz_content_type );
-    if ( headers.psz_role )
-        memcpy( psz_header, headers.psz_role, strlen( headers.psz_role ) );
-
+    if ( headers.i_size > 0 )
+    {
+        psz_header = *pp_buffer + FISBONE_BASE_SIZE;
+        memcpy( psz_header, headers.psz_content_type, strlen( headers.psz_content_type ) );
+        psz_header += strlen( headers.psz_content_type );
+        if ( headers.psz_role )
+            memcpy( psz_header, headers.psz_role, strlen( headers.psz_role ) );
+    }
     *pi_size = FISBONE_BASE_SIZE + headers.i_size;
 
     free( headers.psz_content_type );