From: Andreas Schwab Date: Mon, 09 Apr 2012 15:09:13 GMT Subject: Re: [PATCH] Avoid bug in Solaris xpg4/sed as used in submodule Message-ID: In-Reply-To: <1333977812-sup-4111@pinkfloyd.chass.utoronto.ca> Ben Walton writes: > Excerpts from Andreas Schwab's message of Mon Apr 09 02:40:03 -0400 2012: > >> How about using 's|[^/][^/]*|..|g' instead, which should avoid the bug >> as well. > > I'd be ok with that change if the changed semantics of the regex are > ok in this application. It's essentially the same as s|[^/]+|..|g, > which requires at least one character. > > In the current code, if you do: > > echo '/' | sed -e 's|[^]*|..|g' > > you get: ../.. (from a working implementation). > > Your regex would see the result be: / > > I don't think we'd ever be passing a plain /, but we might pass a > fully qualified path /path/to/foo, which would see the result change > from ../../../.. to /../../.. and that could have unintended impact. AFAICS the variables at this point never contain a value with a leading slash. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."