[asterisk-dev] Change in asterisk[master]: AMI: Fix improper handling of lines that are exactly 1025 by...

Corey Farrell (Code Review) asteriskteam at digium.com
Mon Apr 13 06:59:34 CDT 2015


Corey Farrell has uploaded a new change for review.

  https://gerrit.asterisk.org/74

Change subject: AMI: Fix improper handling of lines that are exactly 1025 bytes long.
......................................................................

AMI: Fix improper handling of lines that are exactly 1025 bytes long.

When AMI receives a line that is 1025 bytes long, it sends two error
messages.  Copy the last byte in the buffer to the first postiion,
set the length to 1.

ASTERISK-20524 #close
Reported by: David M. Lee

Change-Id: Ifda403e2713b59582c715229814fd64a0733c5ea
---
M main/manager.c
1 file changed, 4 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/74/74/1

diff --git a/main/manager.c b/main/manager.c
index d2d9896..fe4d071 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -6239,9 +6239,11 @@
 		return 1;
 	}
 	if (s->session->inlen >= maxlen) {
-		/* no crlf found, and buffer full - sorry, too long for us */
+		/* no crlf found, and buffer full - sorry, too long for us
+		 * keep the last character in case we are in the middle of a CRLF. */
 		ast_log(LOG_WARNING, "Discarding message from %s. Line too long: %.25s...\n", ast_sockaddr_stringify_addr(&s->session->addr), src);
-		s->session->inlen = 0;
+		src[0] = src[s->session->inlen - 1];
+		s->session->inlen = 1;
 		s->parsing = MESSAGE_LINE_TOO_LONG;
 	}
 	res = 0;

-- 
To view, visit https://gerrit.asterisk.org/74
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifda403e2713b59582c715229814fd64a0733c5ea
Gerrit-PatchSet: 1
Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-Owner: Corey Farrell <git at cfware.com>



More information about the asterisk-dev mailing list