[vlc-devel] [PATCH 1/4] lib: media_player: release old media earlier

Thomas Guillem thomas at gllm.fr
Fri Sep 18 09:42:51 CEST 2020


md or mp->p_md is not used after. No rick of race since mp->p_md is
always written with the player lock held.

This fixes a potential null-dereference if the media was already set to
null and release by the user via libvlc_media_player_set_media().
---
 lib/media_player.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/media_player.c b/lib/media_player.c
index 4db7f96af05..26cf6469589 100644
--- a/lib/media_player.c
+++ b/lib/media_player.c
@@ -72,7 +72,10 @@ on_current_media_changed(vlc_player_t *player, input_item_t *new_media,
         return;
 
     if (md)
+    {
         media_detach_preparsed_event(md);
+        libvlc_media_release(md);
+    }
 
     if (new_media)
     {
@@ -87,8 +90,6 @@ on_current_media_changed(vlc_player_t *player, input_item_t *new_media,
     else
         mp->p_md = NULL;
 
-    libvlc_media_release(md);
-
     libvlc_event_t event;
     event.type = libvlc_MediaPlayerMediaChanged;
     event.u.media_player_media_changed.new_media = mp->p_md;
-- 
2.28.0



More information about the vlc-devel mailing list