Set fSocket to -1 after close on an error to prevent a double close. #480
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.
Since alsa-plugins >= 1.1.7 now enables the ALSA jack plugin by default with 50-jack.conf, I've been seeing sporadic crashes in Kodi when the sound devices get reenumerated for a udev event. I traced this down to a double close on the audio engine thread concurrent with a close on the udev thread which asserts on EBADF in libudev causing the crash.
An strace pointed to the double close occuring in posix/JackSocket.cpp:139 and posix/JackSocket.cpp:158.
To fix this, reset fSocket to -1 after closing on an error to prevent a double close later.
Signed-off-by: Joe Yasi joe.yasi@gmail.com