*Synopsis*: *ksh93* bug in pattern matching

Due to a change requested by <User 1-5Q-5151>,
<User 1-5Q-5151> is now the responsible engineer for:

CR 6766246 changed on Nov 4 2008 by <User 1-5Q-5151>

=== Field ============ === New Value ============= === Old Value =============

Evaluation             New Note                                               
Hook 5                 <email address omitted>                                
Hook 6                 <email address omitted>     <email address omitted>    
Introduced in Build    snv_72                                                 
Introduced in Release  solaris_nevada                                         
Keyword                oss-sponsor                                            
Keyword                oss-request                                            
Responsible Engineer   <User 1-5Q-5151>                                       
Root Cause             Other - see Research Acti..                            
See Also               6619428                                                
Status                 6-Fix Understood            1-Dispatched               
Synopsis               *ksh93* bug in pattern ma.. bug in pattern matching    
Targeted Release       solaris_nevada                                         
====================== =========================== ===========================

     
*Change Request ID*: 6766246

*Synopsis*: *ksh93* bug in pattern matching

  Product: solaris
  Category: shell
  Subcategory: korn93
  Type: Defect
  Subtype: 
  Status: 6-Fix Understood
  Substatus: 
  Priority: 3-Medium
  Introduced In Release: solaris_nevada
  Introduced In Build: snv_72
  Responsible Engineer: <User 1-5Q-5151>
  Keywords: opensolaris, oss-request, oss-sponsor

=== *Description* ============================================================
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 ]

*** (#2 of 2): 2008-11-04 15:23:49 GMT+00:00 alan.coopersmith at sun.com


=== *Workaround* =============================================================

=== *Additional Details* =====================================================
        Targeted Release: solaris_nevada
        Commit To Fix In Build: 
        Fixed In Build: 
        Integrated In Build: 
        Verified In Build: 
  See Also: 6619428
  Duplicate of: 
  Hooks:
        Hook1: 
        Hook2: 
        Hook3: 
        Hook4: 
        Hook5: <email address omitted>
        Hook6: <email address omitted>
  Program Management: 
  Root Cause: Other - see Research Activity
  Fix Affects Documentation: No
  Fix Affects Localization: No

=== *History* ================================================================
        Date Submitted: 2008-10-31 17:54:09 GMT+00:00
        Submitted By: <User 1-F4SZV>

        Status Changed    Date Updated                  Updated By
        6-Fix Understood  2008-11-04 22:23:05 GMT+00:00 <User 1-5Q-5151>


=== *Service Request* ========================================================
        Impact: Significant
        Functionality: Secondary
        Severity: 3
        Product Name: solaris
        Product Release: solaris_nevada
        Product Build: snv_86
        Operating System: solaris_nevada
        Hardware: x86
        Submitted Date: 2008-10-31 17:54:10 GMT+00:00


=== *Multiple Release (MR) Cluster* - 0 ======================================


Reply via email to