Hiroyuki Wada created DIRAPI-395:
------------------------------------
Summary: Improve unescaped backslash handling in DESC for IBM's
directory servers
Key: DIRAPI-395
URL: https://issues.apache.org/jira/browse/DIRAPI-395
Project: Directory Client API
Issue Type: Improvement
Reporter: Hiroyuki Wada
IBM Security Verify Directory (formerly known as IBM Security Directory Server,
and previously as IBM Tivoli Directory Server) uses Non-comliant LDAP schema
definitions. Specifically, there are cases where DESC contains unescaped
backslashes, like the following example.
{noformat}
attributeTypes: ( 1.3.18.0.2.4.575 NAME 'role' DESC 'Based on CIM. A free form
string describing the role of the Processor - for example, \Central Processor\
or \Math Processor\.' EQUALITY 2.5.13.2 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
{noformat}
Unfortunately, in the current implementation, the position of backslash can
lead to error. For example, parsing the above schema using the
AttributeTypeDescriptionSchemaParser results in a
java.lang.ArrayIndexOutOfBoundsException.
{noformat}
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 118 out of bounds
for length 118
at
org.apache.directory.api.ldap.model.schema.parsers.OpenLdapSchemaParser.getQDString(OpenLdapSchemaParser.java:1835)
at
org.apache.directory.api.ldap.model.schema.parsers.OpenLdapSchemaParser.parseAttributeTypeRelaxed(OpenLdapSchemaParser.java:3167)
at
org.apache.directory.api.ldap.model.schema.parsers.OpenLdapSchemaParser.parseAttributeType(OpenLdapSchemaParser.java:2811)
at
org.apache.directory.api.ldap.model.schema.parsers.AttributeTypeDescriptionSchemaParser.parse(AttributeTypeDescriptionSchemaParser.java:81)
at
org.apache.directory.ldap.client.api.DefaultSchemaLoader.loadAttributeTypes(DefaultSchemaLoader.java:358)
at
org.apache.directory.ldap.client.api.DefaultSchemaLoader.loadSchemas(DefaultSchemaLoader.java:301)
at
org.apache.directory.ldap.client.api.DefaultSchemaLoader.<init>(DefaultSchemaLoader.java:188)
{noformat}
To address this issue, I've wrote a patch that allows unescaped backslash in
DESC during parsing when quirks mode is enabled. I have pushed the
implementation to the following GitHub URL:
https://github.com/openstandia/directory-ldap-api/commits/improve-desc-escape
If this improvement is welcome, I would like to submit a pull request.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]