From 0779d8874f73e3c78fbe674aa7307eaaa4cbd854 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sat, 19 Sep 2009 17:46:11 +0000 Subject: [PATCH] fix null buffer in pre_buffer git-svn-id: http://svn.openzap.org/svn/openzap/trunk@836 a93c3328-9c30-0410-af19-c9cd2b2d52af --- libs/openzap/src/zap_io.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libs/openzap/src/zap_io.c b/libs/openzap/src/zap_io.c index 10da9d8361..6ce6689544 100644 --- a/libs/openzap/src/zap_io.c +++ b/libs/openzap/src/zap_io.c @@ -250,6 +250,9 @@ static zap_status_t zap_channel_destroy(zap_channel_t *zchan) zap_buffer_destroy(&zchan->gen_dtmf_buffer); zap_buffer_destroy(&zchan->dtmf_buffer); zap_buffer_destroy(&zchan->fsk_buffer); + zap_buffer_destroy(&zchan->pre_buffer); + zchan->pre_buffer_size = 0; + hashtable_destroy(zchan->variable_hash); zap_safe_free(zchan->dtmf_hangup_buf); @@ -1200,6 +1203,7 @@ OZ_DECLARE(zap_status_t) zap_channel_done(zap_channel_t *zchan) zap_clear_flag_locked(zchan, ZAP_CHANNEL_MEDIA); zap_clear_flag_locked(zchan, ZAP_CHANNEL_ANSWERED); zap_buffer_destroy(&zchan->pre_buffer); + zchan->pre_buffer_size = 0; zchan->init_state = ZAP_CHANNEL_STATE_DOWN; zchan->state = ZAP_CHANNEL_STATE_DOWN; @@ -2120,7 +2124,7 @@ OZ_DECLARE(zap_status_t) zap_channel_read(zap_channel_t *zchan, void *data, zap_ if (zchan->skip_read_frames > 0) { zchan->skip_read_frames--; } - } else if (zchan->pre_buffer_size) { + } else if (zchan->pre_buffer_size && zchan->pre_buffer) { zap_buffer_write(zchan->pre_buffer, data, *datalen); if (zap_buffer_inuse(zchan->pre_buffer) >= zchan->pre_buffer_size) { zap_buffer_read(zchan->pre_buffer, data, *datalen);