From 00fc32ecefc32c342d311889e5eb32f891e554f8 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Sun, 1 Aug 2010 04:31:06 -0400 Subject: [PATCH] freetmd: fix mix buffer size --- libs/freetdm/src/ftmod/ftmod_pritap/ftmod_pritap.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libs/freetdm/src/ftmod/ftmod_pritap/ftmod_pritap.c b/libs/freetdm/src/ftmod/ftmod_pritap/ftmod_pritap.c index 9719a831db..220a96515b 100644 --- a/libs/freetdm/src/ftmod/ftmod_pritap/ftmod_pritap.c +++ b/libs/freetdm/src/ftmod/ftmod_pritap/ftmod_pritap.c @@ -754,8 +754,8 @@ static ftdm_status_t ftdm_pritap_sig_read(ftdm_channel_t *ftdmchan, void *data, ftdm_status_t status; fio_codec_t codec_func; ftdm_channel_t *peerchan = ftdmchan->call_data; - int16_t peerbuf[size]; int16_t chanbuf[size]; + int16_t peerbuf[size]; int16_t mixedbuf[size]; int i = 0; ftdm_size_t sizeread = size; @@ -771,7 +771,7 @@ static ftdm_status_t ftdm_pritap_sig_read(ftdm_channel_t *ftdmchan, void *data, } memcpy(chanbuf, data, size); - status = peerchan->fio->read(ftdmchan->call_data, peerbuf, &sizeread); + status = peerchan->fio->read(peerchan, peerbuf, &sizeread); if (status != FTDM_SUCCESS) { ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "Failed to read from peer channel!\n"); return FTDM_FAIL; @@ -783,9 +783,10 @@ static ftdm_status_t ftdm_pritap_sig_read(ftdm_channel_t *ftdmchan, void *data, codec_func = peerchan->native_codec == FTDM_CODEC_ULAW ? fio_ulaw2slin : peerchan->native_codec == FTDM_CODEC_ALAW ? fio_alaw2slin : NULL; if (codec_func) { - codec_func(peerbuf, sizeof(peerbuf), &sizeread); sizeread = size; codec_func(chanbuf, sizeof(chanbuf), &sizeread); + sizeread = size; + codec_func(peerbuf, sizeof(peerbuf), &sizeread); } for (i = 0; i < size; i++) { @@ -794,11 +795,10 @@ static ftdm_status_t ftdm_pritap_sig_read(ftdm_channel_t *ftdmchan, void *data, codec_func = peerchan->native_codec == FTDM_CODEC_ULAW ? fio_slin2ulaw : peerchan->native_codec == FTDM_CODEC_ALAW ? fio_slin2alaw : NULL; if (codec_func) { - codec_func(data, size, &size); - } else { - memcpy(data, mixedbuf, sizeof(mixedbuf)); + size = sizeof(mixedbuf); + codec_func(mixedbuf, size, &size); } - + memcpy(data, mixedbuf, size); return FTDM_SUCCESS; }