summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlle Johansson <oej@edvina.net>2007-12-16 09:37:41 +0000
committerOlle Johansson <oej@edvina.net>2007-12-16 09:37:41 +0000
commit5279d712d44bd23ff12eb9fd7697e2eaff5eb0dc (patch)
tree1a9f99c2869f1a4adb3b9fb68a594b8e72a53314
parent00647ff5f702108cb53b0fb22a39b4b0cad0417c (diff)
Don't drop the first character randomly in long listings in the CLI.
Reported by: slavon Patches: asterisk-consolerefresh2.diff.txt uploaded by jamesgolovich (license 176) Tested by: eliel (closes issue #9325) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@93161 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--main/asterisk.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/main/asterisk.c b/main/asterisk.c
index 67dc361d0..dbc44387d 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -1771,7 +1771,8 @@ static int ast_el_read_char(EditLine *el, char *cp)
struct pollfd fds[2];
int res;
int max;
- char buf[512];
+#define EL_BUF_SIZE 512
+ char buf[EL_BUF_SIZE];
for (;;) {
max = 1;
@@ -1833,7 +1834,7 @@ static int ast_el_read_char(EditLine *el, char *cp)
if (!ast_opt_exec && !lastpos)
write(STDOUT_FILENO, "\r", 1);
write(STDOUT_FILENO, buf, res);
- if ((buf[res-1] == '\n') || (buf[res-2] == '\n')) {
+ if ((res < EL_BUF_SIZE - 1) && ((buf[res-1] == '\n') || (buf[res-2] == '\n'))) {
*cp = CC_REFRESH;
return(1);
} else