[Freeswitch-svn] [commit] r6719 - freeswitch/trunk/src/mod/endpoints/mod_iax
Freeswitch SVN
mikej at freeswitch.org
Wed Dec 12 19:19:54 EST 2007
Author: mikej
Date: Wed Dec 12 19:19:53 2007
New Revision: 6719
Modified:
freeswitch/trunk/src/mod/endpoints/mod_iax/mod_iax.c
Log:
cleancleanup, prevent null deref.
Modified: freeswitch/trunk/src/mod/endpoints/mod_iax/mod_iax.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_iax/mod_iax.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_iax/mod_iax.c Wed Dec 12 19:19:53 2007
@@ -150,7 +150,7 @@
static char *ast2str(int ast)
{
int x;
- for (x = 0; x < 32; x++) {
+ for (x = 0; x < 19; x++) {
if ((1 << x) == ast) {
return AST_IANA[x].name;
}
@@ -216,8 +216,6 @@
unsigned int *format, unsigned int *cababilities, unsigned short *samprate, iax_io_t io)
{
char *dname = NULL;
- //int rate = 8000;
- //int codec_ms = 20;
switch_channel_t *channel;
const switch_codec_implementation_t *codecs[SWITCH_MAX_CODECS];
int num_codecs = 0;
@@ -226,11 +224,12 @@
uint32_t interval = 0;
if (globals.codec_string) {
- if ((num_codecs = switch_loadable_module_get_codecs_sorted(codecs, SWITCH_MAX_CODECS, globals.codec_order, globals.codec_order_last)) <= 0) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "NO codecs?\n");
- return SWITCH_STATUS_GENERR;
- }
- } else if (((num_codecs = switch_loadable_module_get_codecs(codecs, SWITCH_MAX_CODECS))) <= 0) {
+ num_codecs = switch_loadable_module_get_codecs_sorted(codecs, SWITCH_MAX_CODECS, globals.codec_order, globals.codec_order_last);
+ } else {
+ num_codecs = switch_loadable_module_get_codecs(codecs, SWITCH_MAX_CODECS);
+ }
+
+ if (num_codecs <= 0) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "NO codecs?\n");
return SWITCH_STATUS_GENERR;
}
@@ -246,6 +245,8 @@
}
}
+ switch_assert(codecs[0]);
+
if (io == IAX_SET) {
mixed_cap = (local_cap & *cababilities);
} else {
@@ -1104,9 +1105,6 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "New Inbound Channel %s!\n", iaxevent->ies.calling_name);
if ((session = switch_core_session_request(iax_endpoint_interface, NULL)) != 0) {
- private_t *tech_pvt;
- switch_channel_t *channel;
-
switch_core_session_add_stream(session, NULL);
if ((tech_pvt = (private_t *) switch_core_session_alloc(session, sizeof(private_t))) != 0) {
channel = switch_core_session_get_channel(session);
More information about the Freeswitch-svn
mailing list