aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2009-03-31 14:10:25 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2009-03-31 14:10:25 +0000
commit3c882efb932e50355a4d2bbeaf27e5db88dee1c5 (patch)
tree48a499e56a495566080679c1d0cc03550c87c239 /main
parent8430bb8433118ab22fb5ff4a940958a307d2d943 (diff)
Merged revisions 185197 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r185197 | file | 2009-03-31 11:07:36 -0300 (Tue, 31 Mar 2009) | 15 lines Merged revisions 185196 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r185196 | file | 2009-03-31 11:06:39 -0300 (Tue, 31 Mar 2009) | 8 lines Fix crash when moving audiohooks between channels. Handle the scenario where we are called to move audiohooks between channels and the source channel does not actually have any on it. (closes issue #14734) Reported by: corruptor ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.1@185199 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r--main/audiohook.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/main/audiohook.c b/main/audiohook.c
index 8156d0ff3..640ec2f5a 100644
--- a/main/audiohook.c
+++ b/main/audiohook.c
@@ -441,12 +441,12 @@ static struct ast_audiohook *find_audiohook_by_source(struct ast_audiohook_list
void ast_audiohook_move_by_source(struct ast_channel *old_chan, struct ast_channel *new_chan, const char *source)
{
- struct ast_audiohook *audiohook = find_audiohook_by_source(old_chan->audiohooks, source);
+ struct ast_audiohook *audiohook;
- if (!audiohook) {
+ if (!old_chan->audiohooks || !(audiohook = find_audiohook_by_source(old_chan->audiohooks, source))) {
return;
}
-
+
/* By locking both channels and the audiohook, we can assure that
* another thread will not have a chance to read the audiohook's status
* as done, even though ast_audiohook_remove signals the trigger