freetdm: Another round of parameter handling fixes (ftmod_{libpri,isdn,pritap})

ftmod_pritap: Abort before overflowing spanparameters array and initialize to all zero
ftmod_isdn:   Fix overflow check, skip over parameters without name or value, initialize spanparameters array to all zero.
ftmod_libpri: Skip over parameters without name or value, initialize spanparameters array to all zero and drop "i < 10" hardcoded check.

This should fix:
	2010-11-15 09:24:34.609515 [ERR] ftmod_libpri.c:1741 Unknown parameter '', aborting configuration
	2010-11-15 09:24:34.609515 [ERR] mod_freetdm.c:3080 Error configuring FreeTDM span BRI_1

Signed-off-by: Stefan Knoblich <s.knoblich@axsentis.de>
Reported-by: Ingmar Schraub <is@eseco.de>
This commit is contained in:
Stefan Knoblich
2010-11-15 12:33:58 +01:00
parent e98b4a6b8d
commit ced7c9ae43
3 changed files with 38 additions and 7 deletions

View File

@@ -2667,7 +2667,12 @@ static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(isdn_configure_span)
const char *var = ftdm_parameters[i].var;
const char *val = ftdm_parameters[i].val;
if (!val) {
if (ftdm_strlen_zero(var)) {
ftdm_log(FTDM_LOG_WARNING, "Skipping variable with no name\n");
continue;
}
if (ftdm_strlen_zero(val)) {
ftdm_log(FTDM_LOG_ERROR, "Variable '%s' has no value\n", var);
return FTDM_FAIL;
}

View File

@@ -1704,11 +1704,16 @@ static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(ftdm_libpri_configure_span)
return FTDM_FAIL;
}
for (i = 0; i < 10 && ftdm_parameters[i].var; i++) {
for (i = 0; ftdm_parameters[i].var; i++) {
const char *var = ftdm_parameters[i].var;
const char *val = ftdm_parameters[i].val;
if (!val) {
if (ftdm_strlen_zero(var)) {
ftdm_log(FTDM_LOG_WARNING, "Skipping parameter with no name\n");
continue;
}
if (ftdm_strlen_zero(val)) {
ftdm_log(FTDM_LOG_ERROR, "Parameter '%s' has no value\n", var);
snprintf(span->last_error, sizeof(span->last_error), "Parameter [%s] has no value", var);
return FTDM_FAIL;