[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