oss-sec mailing list archives

Re: Re: Terminal Control Chars


From: Russ Allbery <eagle () eyrie org>
Date: Thu, 12 Apr 2018 12:01:06 -0700

Ian Zimmerman <itz () very loosely org> writes:

The term "invisible character" has some obvious (if perhaps informal)
meaning.  But I don't really know what "control character" means.  Is a
page separator (^L) a control character, for example?  Is DEL one (ASCII
127)?

I think a useful definition of "control character" in this context (and I
realize this doesn't exactly match the ASCII definition) is a character
that results in an action other than insertion being taken, as opposed to
a glyph (possibly invisible) being inserted (and not counting contexts
such as vi outside of insert mode where basically all characters are
interpreted as actions).

CR and LF would not be control characters in that definition, since they
insert a newline and don't cause an action.  Similarly, TAB wouldn't be a
control character in that definition.  DEL would be if it deleted a
character as opposed to inserting a ^? sequence.  ESC would be if it
changed terminal modes or colors or did all the other things escape
sequences can do.  BEL would be if it rung the terminal bell.  And so
forth.

I think it's reasonable to expect that pasting something into a terminal
will cause insertion of text, including whitespace, but will not cause the
terminal to take *actions* that are not the insertion of text.  Certainly,
I think there are a lot of people in the world who do have that
assumption.

-- 
Russ Allbery (eagle () eyrie org)              <http://www.eyrie.org/~eagle/>


Current thread: