From 197e4b71d6eff64a8d3843d58ba99ead4fca970f Mon Sep 17 00:00:00 2001 From: Stefan Knoblich Date: Fri, 12 Nov 2010 11:36:29 +0100 Subject: [PATCH] mod_freetdm: Really avoid overwriting the last element of spanparameters. "if (ftdm_array_len(spanparameters) == paramindex)" is still off-by-one, we want to stop at "ftdm_array_len(spanparameters) - 1", before we overwrite the last (= terminating, NULL) element. NOTE: i'd prefer an "argc, argv"-style interface here Signed-off-by: Stefan Knoblich --- libs/freetdm/mod_freetdm/mod_freetdm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/freetdm/mod_freetdm/mod_freetdm.c b/libs/freetdm/mod_freetdm/mod_freetdm.c index 879dd05155..4fda283aeb 100755 --- a/libs/freetdm/mod_freetdm/mod_freetdm.c +++ b/libs/freetdm/mod_freetdm/mod_freetdm.c @@ -2434,7 +2434,7 @@ static void parse_bri_pri_spans(switch_xml_t cfg, switch_xml_t spans) char *var = (char *) switch_xml_attr_soft(param, "name"); char *val = (char *) switch_xml_attr_soft(param, "value"); - if (ftdm_array_len(spanparameters) == paramindex) { + if (ftdm_array_len(spanparameters) - 1 == paramindex) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Too many parameters for ss7 span, ignoring any parameter after %s\n", var); break; } @@ -2594,7 +2594,7 @@ static switch_status_t load_config(void) char *var = (char *) switch_xml_attr_soft(param, "name"); char *val = (char *) switch_xml_attr_soft(param, "value"); - if (ftdm_array_len(spanparameters) == paramindex) { + if (ftdm_array_len(spanparameters) - 1 == paramindex) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Too many parameters for ss7 span, ignoring any parameter after %s\n", var); break; } @@ -3106,7 +3106,7 @@ static switch_status_t load_config(void) char *var = (char *) switch_xml_attr_soft(param, "name"); char *val = (char *) switch_xml_attr_soft(param, "value"); - if (ftdm_array_len(spanparameters) == paramindex) { + if (ftdm_array_len(spanparameters) - 1 == paramindex) { ftdm_log(FTDM_LOG_ERROR, "Too many parameters for libpri span, ignoring everything after '%s'\n", var); break; } @@ -3171,7 +3171,7 @@ static switch_status_t load_config(void) char *var = (char *) switch_xml_attr_soft(param, "name"); char *val = (char *) switch_xml_attr_soft(param, "value"); - if (ftdm_array_len(spanparameters) == paramindex) { + if (ftdm_array_len(spanparameters) - 1 == paramindex) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Too many parameters for boost span, ignoring any parameter after %s\n", var); break; }