diff options
author | George Joseph <gjoseph@digium.com> | 2017-10-11 06:03:41 -0600 |
---|---|---|
committer | George Joseph <gjoseph@digium.com> | 2017-10-11 07:10:45 -0500 |
commit | ab4d36533cf561015819c26a2dc594efd05e23b1 (patch) | |
tree | f8b4bbfd5aaf6e46917d0937249cb3583cd14e6a /channels/chan_vpb.cc | |
parent | 1505c1bb09987b36c4c55d1ab6d95e57d0fede16 (diff) |
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
Diffstat (limited to 'channels/chan_vpb.cc')
-rw-r--r-- | channels/chan_vpb.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/channels/chan_vpb.cc b/channels/chan_vpb.cc index d7e9732e0..6e77dc272 100644 --- a/channels/chan_vpb.cc +++ b/channels/chan_vpb.cc @@ -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); |