diff options
author | Denis Vlasenko | 2008-10-18 19:37:41 +0000 |
---|---|---|
committer | Denis Vlasenko | 2008-10-18 19:37:41 +0000 |
commit | e3742f4217e46f42c4f0506c23b04b84fc31e7ad (patch) | |
tree | ad27f4554ff46fbdf27193aac46806e9d6a8baab | |
parent | 3ab3d8a5cfb1cfd6d2fceeea93066c4e63e5f22d (diff) | |
download | busybox-e3742f4217e46f42c4f0506c23b04b84fc31e7ad.zip busybox-e3742f4217e46f42c4f0506c23b04b84fc31e7ad.tar.gz |
vi: explain why reading 4 chars is unsafe
-rw-r--r-- | editors/vi.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/editors/vi.c b/editors/vi.c index acbede3..8944f77 100644 --- a/editors/vi.c +++ b/editors/vi.c @@ -2243,9 +2243,11 @@ static char readit(void) // read (maybe cursor) key from stdin n = chars_to_parse; if (n == 0) { - // If no data, block waiting for input - // (can't read more than minimal ESC sequence - - // see "n = 0" below). + // If no data, block waiting for input. + // Can't read more than minimal ESC sequence size - + // see "n = 0" below. Example of mishandled + // sequence if we read 4 chars here: "ESC O A ESC O A". + // We'll read "ESC O A ESC" and lose second ESC! n = safe_read(0, readbuffer, 3); if (n <= 0) { error: |