Currently, the LDAPArrayIterator() of an empty array is not equal to an empty LDAPArrayIterator(). This causes it code that uses it as a begin iterator in iterator traversal to return the wrong results.
Example:
char* empty[] = { 0 };
LDAPArrayIterator(empty) != LDAPArrayIterator()