diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index fa0fb809d5d9240e2ffd126749f54740588056a9..ec15a2c393ba5d525ec577e9abf39c99d5278c6d 100755 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -2261,6 +2261,8 @@ static int get_input(struct skinnysession *s) return -1; } dlen = *(int *)s->inbuf; + if (dlen+8 > sizeof(s->inbuf)) + dlen = sizeof(s->inbuf) - 8; res = read(s->fd, s->inbuf+4, dlen+4); ast_mutex_unlock(&s->lock); if (res != (dlen+4)) {