Merged revisions 107099 via svnmerge from
authorRussell Bryant <russell@russellbryant.com>
Mon, 10 Mar 2008 16:59:13 +0000 (16:59 +0000)
committerRussell Bryant <russell@russellbryant.com>
Mon, 10 Mar 2008 16:59:13 +0000 (16:59 +0000)
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

main/channel.c

index 346554a..e1569ae 100644 (file)
@@ -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;