summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Spencer <markster@digium.com>2003-12-01 23:59:28 +0000
committerMark Spencer <markster@digium.com>2003-12-01 23:59:28 +0000
commitf42b2aaeef3895e8e2d9c6ec0db298e30e1a59ae (patch)
tree545760db4bd6418308237bad2cecfc8527460c6f
parent8a4d7dd913beb539c262c22e953d20447cd74703 (diff)
Fix chanzap for p0, p1, etc
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1808 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rwxr-xr-xchannels/chan_zap.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index a61e9af3e..d9ff15771 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -2226,13 +2226,19 @@ static int zt_bridge(struct ast_channel *c0, struct ast_channel *c1, int flags,
/* if need DTMF, cant native bridge */
if (flags & (AST_BRIDGE_DTMF_CHANNEL_0 | AST_BRIDGE_DTMF_CHANNEL_1))
return -2;
- p0 = c0->pvt->pvt;
- p1 = c1->pvt->pvt;
- /* cant do pseudo-channels here */
- if ((!p0->sig) || (!p1->sig)) return -2;
ast_mutex_lock(&c0->lock);
ast_mutex_lock(&c1->lock);
+
+ p0 = c0->pvt->pvt;
+ p1 = c1->pvt->pvt;
+ /* cant do pseudo-channels here */
+ if (!p0 || (!p0->sig) || !p1 || (!p1->sig)) {
+ ast_mutex_unlock(&c0->lock);
+ ast_mutex_unlock(&c1->lock);
+ return -2;
+ }
+
op0 = p0 = c0->pvt->pvt;
op1 = p1 = c1->pvt->pvt;
ofd1 = c0->fds[0];