From: Russell Bryant Date: Sat, 20 May 2006 19:54:14 +0000 (+0000) Subject: fix the possibility of writing one byte past the end of a buffer. X-Git-Tag: 1.4.0-beta1~1292 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ed0b86c916cdc842bed18150ade3621573a6388a;p=thirdparty%2Fasterisk.git fix the possibility of writing one byte past the end of a buffer. (issue #7189, Mithraen) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@29053 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 50cf13fab0..856fe24033 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -12121,10 +12121,11 @@ static int sipsock_read(int *id, int fd, short events, void *ignore) ast_log(LOG_WARNING, "Recv error: %s\n", strerror(errno)); return 1; } - if (option_debug && res == sizeof(req.data)) + if (option_debug && res == sizeof(req.data)) { ast_log(LOG_DEBUG, "Received packet exceeds buffer. Data is possibly lost\n"); - - req.data[res] = '\0'; + req.data[sizeof(req.data) - 1] = '\0'; + } else + req.data[res] = '\0'; req.len = res; if(sip_debug_test_addr(&sin)) /* Set the debug flag early on packet level */ ast_set_flag(&req, SIP_PKT_DEBUG);