[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openldap-bugs
Subject:    JLDAP  - LDAPUrl fails to parse attribute correctly (ITS#3049)
From:       ajohnson () logiclibrary ! com
Date:       2004-03-31 22:43:00
Message-ID: 200403312243.i2VMh090082744 () boole ! openldap ! org
[Download RAW message or body]

Full_Name: Aaron Johnson
Version: JLDAP - 2004/02/04
OS: Unix / Windows (Java)
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (65.218.51.242)


I'm constructing a LDAPUrl using the following string:
"ldap://hostname/dc=examples,dc=com?uid".
It appears that when it is parsed, and a scope is not specified the attributes
length (or specifically its end point) is computed incorrectly (off by on
error).
For example when using: ldap://hostname/dc=examples,dc=com?uid
toString returns: ldap://hostname:389/dc=examples,dc=com?ui
and when using: ldap://hostname/dc=examples,dc=com?uid?
toString returns: ldap://hostname:389/dc=examples,dc=com?uid

I think the following one-liner should fix things, but maybe someone on the dev
team who knows the code and logic better would be able to verify this.  Sorry
this isn't in a patch file, but I think it would be more difficult to run the
patch then to just make the change.

--- com/novell/ldap/LDAPUrl.java.orig   2004-03-31 16:19:52.006413600 -0600
+++ com/novell/ldap/LDAPUrl.java        2004-03-31 16:07:38.505872200 -0600
@@ -697,7 +697,7 @@
         // Parse out the attributes
         int scopeStart = url.indexOf('?', scanStart);
         if( scopeStart < 0)
-            scopeStart = scanEnd - 1;
+            scopeStart = scanEnd;
         attrs = parseList( url, ',', attrsStart + 1, scopeStart);
         if( Debug.LDAP_DEBUG) {
             if( attrs != null) {
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic