[vlc-devel] commit: Fix resource deadlock in OSDmenu code. (Jean-Paul Saman )

git version control git at videolan.org
Sun Aug 10 16:07:30 CEST 2008


vlc | branch: master | Jean-Paul Saman <jpsaman at videolan.org> | Sun Aug 10 22:06:06 2008 +0800| [b462123a8291b4bb285b5514f0f48e73776f3597] | committer: Jean-Paul Saman 

Fix resource deadlock in OSDmenu code.

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

 modules/video_filter/osdmenu.c |    2 --
 src/osd/osd.c                  |    3 +--
 2 files changed, 1 insertions(+), 4 deletions(-)

diff --git a/modules/video_filter/osdmenu.c b/modules/video_filter/osdmenu.c
index 8a49204..96ae0fd 100644
--- a/modules/video_filter/osdmenu.c
+++ b/modules/video_filter/osdmenu.c
@@ -270,8 +270,6 @@ static int CreateFilter ( vlc_object_t *p_this )
 error:
     msg_Err( p_filter, "osdmenu filter discarded" );
 
-    osd_MenuDelete( p_this, p_sys->p_menu );
-    p_sys->p_menu = NULL;
     free( p_sys->psz_path );
     free( p_sys->psz_file );
     free( p_sys );
diff --git a/src/osd/osd.c b/src/osd/osd.c
index 1c1cf4a..7e1f78e 100644
--- a/src/osd/osd.c
+++ b/src/osd/osd.c
@@ -68,7 +68,6 @@ static bool osd_ParserLoad( osd_menu_t *p_menu, const char *psz_file )
     if( !p_menu->p_image || !p_menu->psz_file )
     {
         msg_Err( p_menu, "unable to load images, aborting .." );
-        osd_ParserUnload( p_menu );
         return true;
     }
     else
@@ -85,7 +84,6 @@ static bool osd_ParserLoad( osd_menu_t *p_menu, const char *psz_file )
                                         psz_type, true );
         if( !p_menu->p_parser )
         {
-            osd_ParserUnload( p_menu );
             return false;
         }
     }
@@ -200,6 +198,7 @@ osd_menu_t *__osd_MenuCreate( vlc_object_t *p_this, const char *psz_file )
     return p_osd;
 
 error:
+    vlc_mutex_unlock( lockval.p_address );
     __osd_MenuDelete( p_this, p_osd );
     return NULL;
 }




More information about the vlc-devel mailing list