[UPnP] Access to g_UserData must be protected #24296
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Another easy one...access to the userdata map in UPnP must be lock protected before access. Those locks already exists on
Register
andUnregister
. All those callbacks that are part of the diff are invoked by the library itself (thus from arbitrary threads) when remote renderers notify the player.Found while sending bluray iso's from Kodi to another Kodi via UPnP. Since the simple menu is shown on the target player, it is not actually playing the file yet so playback is stopped on the "sender" and the "userdata" removed from the map (this should be fixed...). Later when you actually start the playback by selecting a track, the rendererer notifies the player of the event but the callback/userdata class no longer exists. If the callback happens when the userdata is being removed, kodi crashes.