diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-12-01 23:59:28 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-12-01 23:59:28 +0000 |
commit | 347382cd10b66c6a2aad93aa8cf59d01eb750149 (patch) | |
tree | 545760db4bd6418308237bad2cecfc8527460c6f /channels/chan_zap.c | |
parent | 0f836f3277fb90834da3deb1390f6c2b0ea3ba7c (diff) |
Fix chanzap for p0, p1, etc
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1808 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_zap.c')
-rwxr-xr-x | channels/chan_zap.c | 14 |
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]; |