[Tcsh] tcsh 6.24: broken escape handling

Corinna Vinschen vinschen at redhat.com
Tue Nov 29 11:38:19 UTC 2022


On Nov 29 12:04, H.Merijn Brand wrote:
> On Tue, 29 Nov 2022 11:42:23 +0100, Corinna Vinschen <vinschen at redhat.com> wrote:
> 
> > On Nov 29 11:22, Corinna Vinschen wrote:
> > > Hi,
> > > 
> > > 
> > > I found a problem with ESC handling in tcsh 6.24.  Consider this
> > > example: I have a machine called "pinky" and I'd like to see the machine
> > > name in the terminal header, so basically I perform this command via
> > > .login:
> > > 
> > >   echo "\033]0;pinky\007\c"
> > > 
> > > With tcsh 6.22 I'm getting the desired result:
> > > 
> > >   $ echo "\033]0;pinky\007\c"   [window title changes]
> > >   $ 
> > > 
> > > While with tcsh 6.24 the title still changes, there's something broken:
> > > 
> > >   $ echo "\033]0;pinky\007\c"   [window title changes]
> > >   "
> > >   $
> > > 
> > > That's with version 6.24.01 as well as with 6.24.02.  On Linux
> > > I always get a quotation mark, on Cygwin the output is often a
> > > quotation mark, sometimes random garbage.  The output depends
> > > on the string to print, but it always contains at least one LF:
> > > 
> > >   $ echo "\033]0;pin\007\c"   [window title changes]
> > >   
> > >   $
> > > 
> > > Sorry for noticing this problem so late, but I'm neither running this
> > > sequence by default on Cygwin, nor on Linux.  It occured to me only
> > > because I updated a seldomly used laptop lately, called pinky, FWIW :}  
> > 
> > I bisected the problem and it looks like this commit is the culprit,
> > introducing this problem for the first time:
> > 
> >   06915a414e18 echo parse escape enhancements (H.Merijn Brand)
> 
> % grep cwdcmd ~/.tcshrc | cat -ve
>         alias cwdcmd 'glob "^[]0;'${LOGNAME}'@'${HOST}':$cwd ['$$':'$tty']^G"'$
> 
> ^^^ That still works

Yeah, but that doesn't change the fact that 06915a414e18 broke at
least handling of the ESC ] 0 sequence, and the result looks like
a buffer overrun.


Corinna



More information about the Tcsh mailing list