diff options
author | Russell Bryant <russell@russellbryant.com> | 2008-03-10 16:59:13 +0000 |
---|---|---|
committer | Russell Bryant <russell@russellbryant.com> | 2008-03-10 16:59:13 +0000 |
commit | 541039ce1b55e05b3d3e049e50c4ee05009c8552 (patch) | |
tree | a16c92f73c75b172f5a425f718ddd2424b64c6d0 /main | |
parent | 9c876e801f13fa501bd2b14fbc420ba8d3b3ad28 (diff) |
Merged revisions 107099 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r107099 | russell | 2008-03-10 11:58:57 -0500 (Mon, 10 Mar 2008) | 3 lines
Fix a race condition where the generator can go away
(closes issue #12175, reported by edantie, patched by me)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@107100 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r-- | main/channel.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/main/channel.c b/main/channel.c index 346554a29..e1569aec5 100644 --- a/main/channel.c +++ b/main/channel.c @@ -1711,9 +1711,13 @@ static int generator_force(const void *data) ast_channel_lock(chan); tmp = chan->generatordata; chan->generatordata = NULL; - generate = chan->generator->generate; + if (chan->generator) + generate = chan->generator->generate; ast_channel_unlock(chan); + if (!tmp || !generate) + return 0; + res = generate(chan, tmp, 0, 160); chan->generatordata = tmp; |