git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] git-parse-remote: fix ambiguous shell bug in expand_refs_wildcard

From
Jeff King <peff@peff.net>
Date
May 7, 2007, 06:36 UTC
Message-ID
<20070507063621.GB31445@coredump.intra.peff.net>
In-Reply-To
<20070505080313.GA12170@gondor.apana.org.au>
On Sat, May 05, 2007 at 06:03:13PM +1000, Herbert Xu wrote:
> In fact the rationale (C.2.2.3) in the POSIX document explicitly
> disallows the aformentioned usage as it violates the rule that an
> even number of single quotes if any can occur in an ${...} expression
> enclosed by double quotes.

Yes, there's not much room for interpretation; the old git code was clearly bogus (we are working around it by using sed instead). Thanks for tracking this down, Herbert.

It looks like bash is actually broken in POSIXLY_CORRECT mode, then:

$ echo $BASH_VERSION 3.1.17(1)-release $ POSIXLY_CORRECT=1 $ foo=bar} $ echo "${foo%'}'}" bar

My interpretation of the correct behavior is that it should remove a single quote from the end of foo, and then print '} literally (that is, single quote and brace).

-Peff
Previous: Herbert XuNext: Herbert Xu
Message 6 of 7 in “git-parse-remote: fix ambiguous shell bug in expand_refs_wildcard”
  1. git-parse-remote: fix ambiguous shell bug in expand_refs_wildcardJeff King, Dec 18, 2006
  2. Jeff KingDec 18, 2006
  3. Jeff KingDec 18, 2006
  4. Herbert XuDec 19, 2006
  5. Herbert XuMay 5, 2007
  6. Jeff KingMay 7, 2007
  7. Herbert XuMay 7, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.