LDAP BUG

MALCOLM BOFF (100305.2043@compuserve.com)
09 Aug 96 14:37:23 EDT

I am currently working as a contractor to IBM Global Network and have had
IBMMAILsent twice without any response and I need confirmation of a bug that has
been around for several releases of LDAP.
Although it does not exhibit itself on synchronous calls it is nonetheless
present and creates a problem with async usage.

The problem lies in ldap_search and lies in the result.c module in lines 537-546
which are as follows:-

/* return the whole chain if that's what we were looking for */
if( foundit ) {
if( prev == NULLMSG )
ld->ld_responses = l->lm_next;
else
prev->lm_next = l->lm_next;
*result = l;
ld->ld_errno = LDAP_SUCCESS;
return( tag );

Here l is the list of LDAPMessages unfortunately 'tag' is from the last message
received from X500 (LDAP_RES_SEARCH_RESULT) whereas I believe that what should
be returned is from the first message in the chain ie return( l->lm_msgtype );

Please confirm this by EMail to 'mick@uk.ibm.com' who will forward it to me as I
do not have an IBM internet address.

Also I have been requested to implement the X500 'LIST' function and I have a
number of queries with respect to LDAPD for a starter do the LDAP_REQ_xxx values
have any specific meanings or are they arbitrary. Any help that you can give me
would be greatly appreciated.
(I am aware of the workaround using SEARCH as used in the web browser code but
this is horrendously slow on IBM's very large dictionary).

Malcolm G. Boff