From 97958e56e0d69f55a168fc22ac77de04a4805602 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 10 Sep 2008 19:27:17 +0000 Subject: [PATCH] fix OPENZAP-14 git-svn-id: http://svn.openzap.org/svn/openzap/trunk@553 a93c3328-9c30-0410-af19-c9cd2b2d52af --- libs/freetdm/mod_openzap/mod_openzap.c | 2 +- libs/freetdm/src/zap_io.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/libs/freetdm/mod_openzap/mod_openzap.c b/libs/freetdm/mod_openzap/mod_openzap.c index 0027451179..9a1ac3423f 100644 --- a/libs/freetdm/mod_openzap/mod_openzap.c +++ b/libs/freetdm/mod_openzap/mod_openzap.c @@ -1824,7 +1824,7 @@ SWITCH_STANDARD_API(oz_function) int j; stream->write_function(stream, "+OK\n"); - for(j = 0; j <= span->chan_count; j++) { + for(j = 1; j <= span->chan_count; j++) { dump_chan(span, j, stream); } diff --git a/libs/freetdm/src/zap_io.c b/libs/freetdm/src/zap_io.c index 69b920c3f1..864b19ffd1 100644 --- a/libs/freetdm/src/zap_io.c +++ b/libs/freetdm/src/zap_io.c @@ -345,7 +345,7 @@ zap_status_t zap_span_close_all(void) for(i = 1; i <= globals.span_index; i++) { span = globals.spans[i]; if (zap_test_flag(span, ZAP_SPAN_CONFIGURED)) { - for(j = 0; j <= span->chan_count && span->channels[j]; j++) { + for(j = 1; j <= span->chan_count && span->channels[j]; j++) { zap_channel_destroy(span->channels[j]); } } @@ -429,6 +429,7 @@ zap_status_t zap_span_add_channel(zap_span_t *span, zap_socket_t sockfd, zap_cha return ZAP_FAIL; } span->channels[span->chan_count] = new_chan; + memset(new_chan, 0, sizeof(*new_chan)); } new_chan->type = type; @@ -869,7 +870,11 @@ zap_status_t zap_channel_open_any(uint32_t span_id, zap_direction_t direction, z } } - check = span->channels[i]; + if (!(check = span->channels[i])) { + status = ZAP_FAIL; + zap_mutex_unlock(span->mutex); + goto done; + } if (zap_test_flag(check, ZAP_CHANNEL_READY) && !zap_test_flag(check, ZAP_CHANNEL_INUSE) &&