]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
mod_freetdm: Really avoid overwriting the last element of spanparameters.
authorStefan Knoblich <s.knoblich@axsentis.de>
Fri, 12 Nov 2010 10:36:29 +0000 (11:36 +0100)
committerStefan Knoblich <s.knoblich@axsentis.de>
Fri, 12 Nov 2010 10:42:26 +0000 (11:42 +0100)
"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 <s.knoblich@axsentis.de>
libs/freetdm/mod_freetdm/mod_freetdm.c

index 879dd05155d9bc45c875262115feb70feeb0c655..4fda283aebb284c23e7fdf10a6d0e07f25b8d390 100755 (executable)
@@ -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;
                                }