From: Josh Triplett Date: Fri, 8 Jul 2016 07:32:59 +0000 (-0700) Subject: watch: Don't attempt to ungetc parts of unknown ANSI escape sequences X-Git-Tag: v3.3.12~6 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0236d278f27cd3f0f1e31c4bda751233322d6251;p=procps-ng watch: Don't attempt to ungetc parts of unknown ANSI escape sequences If process_ansi encountered an unknown character when processing an ANSI escape sequence, it would ungetc all the characters read so far, except for the character just read, and the opening '\033['. ungetting the middle of the escape sequence does not produce useful results, and also relies on the unportable assumption that ungetc works on multiple characters (which glibc does not support). Discard the characters instead. Signed-off-by: Josh Triplett --- diff --git a/watch.c b/watch.c index 265daa6d..8de12b2c 100644 --- a/watch.c +++ b/watch.c @@ -217,8 +217,6 @@ static void process_ansi(FILE * fp) break; } if ((c < '0' || c > '9') && c != ';') { - while (--i >= 0) - ungetc(buf[i], fp); return; } buf[i] = (char)c;