summaryrefslogtreecommitdiff
path: root/main/channel.c
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2007-01-13 06:01:49 +0000
committerJoshua Colp <jcolp@digium.com>2007-01-13 06:01:49 +0000
commitd986f00e7337f29b39aad762113555573e42bc98 (patch)
tree974bd1a4bea0005c6cb5d9895db605657ce12f57 /main/channel.c
parent91dfb27494f98ac5cb98d63fda3cde3c14a026f3 (diff)
Merged revisions 50727 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r50727 | file | 2007-01-13 01:00:24 -0500 (Sat, 13 Jan 2007) | 2 lines Only write a frame out to the channel if one exists. There are cases where one may not and would therefore cause the channel driver to segfault. (issue #8434 reported by slimey) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@50728 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/channel.c')
-rw-r--r--main/channel.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/main/channel.c b/main/channel.c
index dcdecdfdc..95639ebde 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -2656,8 +2656,10 @@ int ast_write(struct ast_channel *chan, struct ast_frame *fr)
/* and now put it through the regular translator */
f = (chan->writetrans) ? ast_translate(chan->writetrans, f, 0) : f;
}
-
- res = chan->tech->write(chan, f);
+ if (f)
+ res = chan->tech->write(chan, f);
+ else
+ res = 0;
break;
case AST_FRAME_NULL:
case AST_FRAME_IAX: