...
BugZero found this defect 2827 days ago.
RFC4511 allows LDAP searches to return empty attributes which have no values: 4.1.7. Attribute and PartialAttribute Attributes and partial attributes consist of an attribute description and attribute values. A PartialAttribute allows zero values, while Attribute requires at least one value. PartialAttribute ::= SEQUENCE { type AttributeDescription, vals SET OF value AttributeValue } 4.5.2. Search Result The results of the Search operation are returned as zero or more SearchResultEntry and/or SearchResultReference messages, followed by a single SearchResultDone message. SearchResultEntry ::= [APPLICATION 4] SEQUENCE { objectName LDAPDN, attributes PartialAttributeList } PartialAttributeList ::= SEQUENCE OF partialAttribute PartialAttribute SearchResultReference ::= [APPLICATION 19] SEQUENCE SIZE (1..MAX) OF uri URI SearchResultDone ::= [APPLICATION 5] LDAPResult Servers conforming to this specification do not need to return any values for a particular attribute. libldap appears to return a NULL pointer when ldap_get_values_len is called for an attribute without values, instead of an array containing a NULL pointer. libldap more commonly returns a NULL pointer on error. However, this condition is not considered an error, so no result code is set on the LDAP session handle. We should correctly handle this case.
xgen-internal-githook commented on Fri, 17 Mar 2017 21:16:48 +0000: Author: {u'username': u'spencerjackson', u'name': u'Spencer Jackson', u'email': u'spencer.jackson@mongodb.com'} Message: SERVER-28370: Avoid crash when parsing null valued LDAP attributes (cherry picked from commit 37c0edb1a50590e7591412b1fcc308dd85348f24) Branch: v3.4 https://github.com/10gen/mongo-enterprise-modules/commit/ddbfcdc097d658293caabdf2506222c43803c51d xgen-internal-githook commented on Fri, 17 Mar 2017 19:37:38 +0000: Author: {u'username': u'spencerjackson', u'name': u'Spencer Jackson', u'email': u'spencer.jackson@mongodb.com'} Message: SERVER-28370: Avoid crash when parsing null valued LDAP attributes Branch: master https://github.com/10gen/mongo-enterprise-modules/commit/37c0edb1a50590e7591412b1fcc308dd85348f24