unescaping binary string corrupts values
----------------------------------------

                 Key: DIRSERVER-1276
                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1276
             Project: Directory ApacheDS
          Issue Type: Bug
          Components: core
    Affects Versions: 1.5.3
         Environment: Windows running under JBOSS
            Reporter: Steve hammond


When I pass in an escaped string into search, inside 
ConcreteNameComponentNormalizer, it corrupts the binary values.
passed in 
(&(2.5.4.0=person)(objectguid=\29\4C\04\B5\D4\ED\38\46\87\EE\77\58\5C\32\AD\91))
after normalization interceptor visitor it is:
(&(2.5.4.0=person)(1.2.840.113556.1.4.2='0x29 0x4C 0x04 0xEF 0xBE 0xB5 0xEF 
0xBF 0x94 0xEF 0xBF 0xAD 0x38 0x46 0xEF 0xBE ...'))

looks like in ConcreteNameComponentNormalizer line129                byte[] 
valBytes = unescaped.getBytes( "UTF-8" );
causes the corruption.  The Variable unescaped seems correct and is 16 bytes, 
valBytes gets created with 30 bytes with the extra data inserted.


The code I am using is:
         SearchOperationContext opContext = new SearchOperationContext(
               apacheds.getDirectoryService().getRegistries(),
               baseDN,
               AliasDerefMode.NEVER_DEREF_ALIASES, 
               
FilterParser.parse("(&(objectClass=person)(objectguid=\29\4C\04\B5\D4\ED\38\46\87\EE\77\58\5C\32\AD\91))"),
               new SearchControls (
                     SearchControls.SUBTREE_SCOPE, 
                     0, // countlim
                     0, // timelim
                     retAttrs,
                     false, true));
         NamingEnumeration<ServerSearchResult> res = nexus.search(opContext);

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to