From: Kevin P. Fleming Date: Wed, 15 Nov 2006 00:19:05 +0000 (+0000) Subject: more formatting cleanup, and avoid running off the end of the string X-Git-Tag: 1.4.0-beta4~117 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8dc804fafecc976521079fc5d48a355e01ecc6a8;p=thirdparty%2Fasterisk.git more formatting cleanup, and avoid running off the end of the string git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47641 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/term.c b/main/term.c index bdafa49e20..940396ee36 100644 --- a/main/term.c +++ b/main/term.c @@ -266,28 +266,26 @@ char *term_prompt(char *outbuf, const char *inbuf, int maxout) /* filter escape sequences */ void term_filter_escapes(char *line) - { - int i; - - for (i = 0; i < strlen(line); i++) { +{ + int i; + int len = strlen(line); + + for (i = 0; i < len; i++) { if (line[i] != ESC) continue; - if (line[i + 1] == '\x5b') { + if ((i < (len - 2)) && + (line[i + 1] == 0x5B)) { switch (line[i + 2]) { - case '\x30': - case '\x31': - case '\x33': - break; - default: - /* replace ESC with a space */ - line[i] = ' '; + case 0x30: + case 0x31: + case 0x33: + continue; } - } else { - /* replace ESC with a space */ - line[i] = ' '; } - } - } + /* replace ESC with a space */ + line[i] = ' '; + } +} char *term_prep(void) {