[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Passing null to LDAPAttribute constructor (ITS#2683)



Hi,
  Thanks for bringing this to our attention.The bug is fixed now and 
is checked in . Can you colse the ITS please.


-Sunil



>>> <gelgey@wedgetail.com> 8/14/2003 11:33:52 AM >>>
Full_Name: Geoffrey Elgey
Version: JLDAP
OS: Linux
URL: ftp://ftp.openldap.org/incoming/ 
Submission from: (NULL) (202.83.95.124)


No check is made for null in the constructor (as specified in
draft-ietf-ldapext-ldap-java-api-18.txt, section 2.1.1) so the size()
method
shall fail with a runtime exception.

  LDAPAttribute(com.novell.ldap.LDAPAttribute attr)
  {
    this.attr = attr;
    return;
  }

  ...

  public int size()
  {
    return attr.size();
  } 

The constructor should be modified as follows:

     /**
      * Constructs an attribute from a com.novell.ldap.LDAPAttribute
+     *
+     * @param attr the attribute object to be wrapped. Must not be
+     * <code>null</code>.
+     *
+     * @throws IllegalArgumentException if attr is <code>null</code>.
      */
     /* package */
     LDAPAttribute(com.novell.ldap.LDAPAttribute attr)
     {
+        if (attr == null) {
+          throw new IllegalArgumentException("No attribute
supplied");
+        }
         this.attr = attr;
         return;
     }

Similarly, all code that calls this constructor should perform
appropriate
checks for null values. For example, the org.ietf.ldap.LDAPEntry class
should be
modified as follows:

     public LDAPAttribute getAttribute(String attrName)
     {
-        return new LDAPAttribute(entry.getAttribute(attrName));
+        final com.novell.ldap.LDAPAttribute attr =
+          entry.getAttribute(attrName);
+        return (attr != null) ? new LDAPAttribute(attr) : null;
     }