From: Daniel Jacobowitz <drow@mvista.com>
To: Eli Zaretskii <eliz@elta.co.il>
Cc: brobecker@gnat.com, gdb-patches@sources.redhat.com
Subject: Re: [RFA/RFC] Problem with '!' escaping with zsh/bash/ksh
Date: Sat, 03 May 2003 14:34:00 -0000 [thread overview]
Message-ID: <20030503143251.GA1878@nevyn.them.org> (raw)
In-Reply-To: <1438-Sat03May2003113601+0300-eliz@elta.co.il>
On Sat, May 03, 2003 at 11:36:01AM +0300, Eli Zaretskii wrote:
> > Date: Fri, 2 May 2003 16:34:58 -0700
> > From: Joel Brobecker <brobecker@gnat.com>
> >
> > the following change introduced a problem when forking inferiors when
> > the path to the executable contains '!' characters. This only occurs
> > with sh-like shells, like zsh/bash/ksh. I have reproduced this on Linux
> > and HP/UX.
> >
> > * fork-inferior.c (fork_inferior): Add '!' to the list of
> > characters that need to be quoted when building a string for the
> > shell. Quote '!' specifically with a backslash, since CSH chokes
> > when trying to evaluate "str!str".
> >
> > Witness:
> >
> > (gdb) run
> > Starting program: /home/brobecke/tmp/GEO_ENV!9.159/foo
> > zsh: no such file or directory: /home/brobecke/tmp/GEO_ENV\!9.159/foo
> >
> > Program exited with code 01.
> > You can't do that without a process to debug.
> >
> > As far as I can tell from the comments in fork_inferior and my own
> > experiments, the bang should be escaped only for C shells.
>
> Are you saying that zsh doesn't support escaping of arbitrary
> characters with a backslash? That is, under zsh, "\a" is not the same
> as "a"? I'd be surprised.
No, I don't think that's what he's saying - and I'm not sure the
problem is understood correctly, but Joel, I don't have the original
message any more, so I might be mistaken...
By the time it gets to execve, we have:
execve("/home/drow/foo/foo\\!bar/ls", ["/home/drow/foo/foo\\!bar/ls"],
i.e. the backslash has been escaped too!
By the way... what would the general reaction be to supporting exec'ing
the program directly instead of through the shell? At least as an
option, since it would be a bit of an interface/quoting change?
I've had several opportunities over the past couple of weeks to try to
debug ld.so in trace mode, and doing this from either gdb or gdbserver
is essentially impossible; because gdbserver can't yet set env
variables, and gdb runs a shell, so there's no way to set an env
variable to affect the program being debugged and not also gdbserver or
sh.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
next prev parent reply other threads:[~2003-05-03 14:34 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-02 23:35 Joel Brobecker
2003-05-03 8:39 ` Eli Zaretskii
2003-05-03 14:34 ` Daniel Jacobowitz [this message]
2003-05-03 16:51 ` Joel Brobecker
2003-05-03 16:59 ` Daniel Jacobowitz
2003-05-05 19:29 ` Andrew Cagney
2003-05-08 18:11 ` Joel Brobecker
2003-05-21 23:40 ` Joel Brobecker
2003-05-22 17:50 ` Andrew Cagney
2003-05-24 7:40 ` Eli Zaretskii
2003-05-03 19:00 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030503143251.GA1878@nevyn.them.org \
--to=drow@mvista.com \
--cc=brobecker@gnat.com \
--cc=eliz@elta.co.il \
--cc=gdb-patches@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox