mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-06-07 21:44:51 +00:00
ftmod_libpri: final fix called number overlap receiving...
ftdm_copy_string() length parameter needs to include the terminating NUL byte. Signed-off-by: Stefan Knoblich <stkn@openisdn.net> Tested-by: Stefan Knoblich <stkn@openisdn.net>
This commit is contained in:
parent
d28b2391fc
commit
1c608f0a5d
@ -890,14 +890,14 @@ static int on_info(lpwrap_pri_t *spri, lpwrap_pri_event_t event_type, pri_event
|
|||||||
if (!ftdm_strlen_zero(pevent->ring.callednum)) {
|
if (!ftdm_strlen_zero(pevent->ring.callednum)) {
|
||||||
int digits = strlen(pevent->ring.callednum);
|
int digits = strlen(pevent->ring.callednum);
|
||||||
int offset = strlen(caller_data->dnis.digits);
|
int offset = strlen(caller_data->dnis.digits);
|
||||||
int len = MIN(sizeof(caller_data->dnis.digits) - 1 - offset, digits);
|
int len = MIN(sizeof(caller_data->dnis.digits) - 1 - offset, digits); /* max. length without terminator */
|
||||||
|
|
||||||
if (len < digits) {
|
if (len < digits) {
|
||||||
ftdm_log_chan(chan, FTDM_LOG_WARNING, "Length %d of digit string exceeds available space %d of DNIS, truncating!\n",
|
ftdm_log_chan(chan, FTDM_LOG_WARNING, "Length %d of digit string exceeds available space %d of DNIS, truncating!\n",
|
||||||
digits, len);
|
digits, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
ftdm_copy_string(&caller_data->dnis.digits[offset], (char *)pevent->ring.callednum, len);
|
ftdm_copy_string(&caller_data->dnis.digits[offset], (char *)pevent->ring.callednum, len + 1); /* max. length with terminator */
|
||||||
caller_data->dnis.digits[offset + len] = '\0';
|
caller_data->dnis.digits[offset + len] = '\0';
|
||||||
}
|
}
|
||||||
if (pevent->ring.complete) {
|
if (pevent->ring.complete) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user