[vlc-devel] commit: codec/libass: avoid possible segfault (Anthony Loiseau )

git version control git at videolan.org
Tue Jul 28 19:06:49 CEST 2009


vlc | branch: master | Anthony Loiseau <thannoy at actech-innovation.com> | Tue Jul 28 16:46:54 2009 +0200| [29e7fc71082c08aec51d438b3d8564e25526b2d1] | committer: Rémi Duraffort 

codec/libass: avoid possible segfault

dialog_ProgressCreate can return NULL. For this case,
only deal with the result if it is not NULL.

Signed-off-by: Rémi Duraffort <ivoire at videolan.org>

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

 modules/codec/libass.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/modules/codec/libass.c b/modules/codec/libass.c
index 0f7a0ad..16a4860 100644
--- a/modules/codec/libass.c
+++ b/modules/codec/libass.c
@@ -724,7 +724,8 @@ static ass_handle_t *AssHandleHold( decoder_t *p_dec )
     ass_set_fonts_dir( p_library, psz_font_dir );
     free( psz_font_dir );
 #ifdef WIN32
-    dialog_ProgressSet( p_dialog, NULL, 0.1 );
+    if( p_dialog )
+        dialog_ProgressSet( p_dialog, NULL, 0.1 );
 #endif
 
     ass_set_extract_fonts( p_library, true );
@@ -747,7 +748,8 @@ static ass_handle_t *AssHandleHold( decoder_t *p_dec )
 
 #ifdef HAVE_FONTCONFIG
 #ifdef WIN32
-    dialog_ProgressSet( p_dialog, NULL, 0.2 );
+    if( p_dialog )
+        dialog_ProgressSet( p_dialog, NULL, 0.2 );
 #endif
 #if defined( LIBASS_VERSION ) && LIBASS_VERSION >= 0x00907000
     ass_set_fonts( p_renderer, psz_font, psz_family, true, NULL, 1 );  // setup default font/family
@@ -755,7 +757,8 @@ static ass_handle_t *AssHandleHold( decoder_t *p_dec )
     ass_set_fonts( p_renderer, psz_font, psz_family );  // setup default font/family
 #endif
 #ifdef WIN32
-    dialog_ProgressSet( p_dialog, NULL, 1.0 );
+    if( p_dialog )
+        dialog_ProgressSet( p_dialog, NULL, 1.0 );
 #endif
 #else
     /* FIXME you HAVE to give him a font if no fontconfig */
@@ -774,7 +777,8 @@ static ass_handle_t *AssHandleHold( decoder_t *p_dec )
     /* */
     vlc_mutex_unlock( &libass_lock );
 #ifdef WIN32
-    dialog_ProgressDestroy( p_dialog );
+    if( p_dialog )
+        dialog_ProgressDestroy( p_dialog );
 #endif
     return p_ass;
 




More information about the vlc-devel mailing list