mirror of https://github.com/asterisk/asterisk
In res_musiconhold.c, there are several places where a channel's stream's existence is checked prior to calling ast_closestream on it. The issue here is that in several cases, the channel was not locked while checking the stream. The result was that if two threads checked the state of the channel's stream at approximately the same time, then there could be a situation where both threads attempt to call ast_closestream on the channel's stream. The result here is that the refcount for the stream would go below 0, resulting in a crash. I have added proper channel locking to res_musiconhold.c to ensure that we do not try to check chan->stream without the channel locked. A Digium customer has been using this patch for several weeks and has not had any crashes since applying the patch. ABE-2147 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@260345 65c4cc65-6c06-0410-ace0-fbb531ad65f31.4
parent
e0d8abbfe2
commit
1a098e8e98
Loading…
Reference in new issue