diff options
author | Jeremy McNamara <jj@nufone.net> | 2004-01-11 18:50:46 +0000 |
---|---|---|
committer | Jeremy McNamara <jj@nufone.net> | 2004-01-11 18:50:46 +0000 |
commit | 2eaddaca67e133dbc15f782230d754061e251f13 (patch) | |
tree | eada4c665697424ec01e131d60d84c9339888bb4 /channels | |
parent | 06d25065442e4e5c393200e3a7132b1239a1bff9 (diff) |
check buffer for possible overflow. Thanks Corydon76 Bug #788
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1951 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rwxr-xr-x | channels/chan_sip.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 8e963951a..fc051d466 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -4114,7 +4114,11 @@ static int get_msg_text(char *buf, int len, struct sip_request *req) y = 0; for (x=0;x<req->lines;x++) { strncat(buf, req->line[x], y); - strcat(buf, "\n"); + y -= strlen(req->line[x]) + 1; + if (y < 0) + y = 0; + if (y != 0) + strcat(buf, "\n"); } return 0; } |