From 2c9e11ba385eae2dd646d7c5c4a711ffd0c655ae Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Sat, 4 Apr 2015 10:57:50 +0200 Subject: [PATCH] media_addon_server: Fix use-after-free on quit. Putting the add-ons uses the dormant node manager of the BMediaRoster. The BMediaRoster must therefore only be quit after all add-ons are put. --- src/servers/media_addon/MediaAddonServer.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/servers/media_addon/MediaAddonServer.cpp b/src/servers/media_addon/MediaAddonServer.cpp index 9924bb5fc1..475add71c7 100644 --- a/src/servers/media_addon/MediaAddonServer.cpp +++ b/src/servers/media_addon/MediaAddonServer.cpp @@ -335,12 +335,12 @@ MediaAddonServer::QuitRequested() fSystemTimeSource = NULL; } - BMediaRoster::CurrentRoster()->Lock(); - BMediaRoster::CurrentRoster()->Quit(); - for (iterator = fInfoMap.begin(); iterator != fInfoMap.end(); iterator++) _PutAddonIfPossible(iterator->second); + BMediaRoster::CurrentRoster()->Lock(); + BMediaRoster::CurrentRoster()->Quit(); + return true; }