chan_vpb: Fix a gcc 7 out-of-bounds complaint
chan_vpb was trying to use sizeof(*p->play_dtmf), where p->play_dtmf is defined as char[16], to get the length of the array but since p->play_dtmf is an actual array, sizeof(*p->play_dtmf) returns the size of the first array element, which is 1. gcc7 validly complains because the context in which it's used could cause an out-of-bounds condition. Change-Id: If9c4bfdb6b02fa72d39e0c09bf88900663c000ba
This commit is contained in:
parent
1505c1bb09
commit
ab4d36533c
|
@ -1791,7 +1791,7 @@ static int vpb_digit_end(struct ast_channel *ast, char digit, unsigned int durat
|
|||
ast_verb(4, "%s: vpb_digit: asked to play digit[%s]\n", p->dev, s);
|
||||
|
||||
ast_mutex_lock(&p->play_dtmf_lock);
|
||||
strncat(p->play_dtmf, s, sizeof(*p->play_dtmf) - strlen(p->play_dtmf) - 1);
|
||||
strncat(p->play_dtmf, s, sizeof(p->play_dtmf) - strlen(p->play_dtmf) - 1);
|
||||
ast_mutex_unlock(&p->play_dtmf_lock);
|
||||
|
||||
ast_mutex_unlock(&p->lock);
|
||||
|
|
Loading…
Reference in New Issue