bugmail-sender at Sun.COM wrote: > *Synopsis*: bug in pattern matching > > CR 6766246 changed on Nov 4 2008 by <User 1-5Q-1267> [snip] > Category > shell > Sub-Category > bourne > Description > This was already reported as > http://www.opensolaris.org/jive/thread.jspa?threadID=80967 > The bootstrap script of pkgsrc contains this code > checkarg_sane_absolute_path() { > case "$1" in > "") ;; # the default value will be used. > *[!-A-Za-z0-9_./]*) > die "ERROR: Invalid characters in path $1 (from $2)." ;; > /*) ;; > *) die "ERROR: The argument to $2 must be an absolute path." ;; > esac > } > It turns out, the leading "!" in the pattern is not interpreted as negation, > and the first "-" not as a literal. Instead the character range "! to A" is > constructed. Paths containing "%" or "@" are accepted, but paths containing > "-" are rejected. Note that this interpretation makes the whole pattern > syntactically wrong, which isn't noticed either. > Frequency > Always > Regression > Solaris 10 > Steps to Reproduce > run example below > Expected Result > strings containing a "-" should be accepted, strings containing a "@" > should be rejected > Actual Result > strings containing a "-" are rejected, strings containing a "@" are > accepted > Error Message(s) > > Test Case > #!/bin/sh > case "$1" in > *[!-A-Za-z0-9_./]*) > echo invalid characters used in $1 > ;; > *) > echo only valid characters used in $1 > ;; > esac > Workaround > The pattern "*[!A-Za-z0-9_./-]*" (i.e. shifting the dash to the end) works > as expected. > Submitter wants to work on bug > No > Additional configuration information > > *** (#1 of 1): 2008-10-31 17:54:10 GMT+00:00 <User 1-F4SZV> > > === *Public Comments* ======================================================== > Since the post on the forums that was posted to says "I am using OpenSolaris > 2008.05.", assigning this to shell/korn93, not shell/bourne. > (2008.05 /bin/sh is ksh93.) > > *** (#1 of 2): 2008-11-04 04:09:56 GMT+00:00 alan.coopersmith at sun.com > *** Last Edit: 2008-11-04 15:23:49 GMT+00:00 alan.coopersmith at sun.com > > Glenn Fowler has responded to the bug report on the ksh93-integration-discuss > list/forum on opensolaris.org with: > > thanks for the report > its a coding bug exposed by character class ranges in non-C locales > as a temporary workaround, the matching should work as expected for LC_ALL=C > the fix has been posted in the official 2008-11-04 source tarballs at > http://www.research.att.com/sw/download/ > > [Thread at > http://www.opensolaris.org/jive/thread.jspa?threadID=81453&tstart=0 ]
April: Can you add the comment that the matching testcase now sits in http://svn.genunix.org/repos/on/branches/ksh93/gisburn/scripts/tests/sun_solaris_cr_6766246_pattern_matching_bug.sh , please ? I'll update the prototype012 tree to ast-ksh.2008-11-04 in a few hours... ---- Bye, Roland -- __ . . __ (o.\ \/ /.o) roland.mainz at nrubsig.org \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer /O /==\ O\ TEL +49 641 3992797 (;O/ \/ \O;)
