[BUG] LDAP SAM will not return first entry.

Andrew Bartlett abartlet at pcug.org.au
Sat Jan 26 18:51:04 GMT 2002

The ldapsam backend has a little bug in the pdb_getsampwent()

The pdb_startsampwent() function sets up the global variable for the
first user, but this function:

Get the next entry in the LDAP password database 
BOOL pdb_getsampwent(SAM_ACCOUNT * user)
	if (!global_ldap_ent.entry)
		return False;

	global_ldap_ent.entry =	ldap_next_entry(global_ldap_ent.ldap_struct,

	if (global_ldap_ent.entry != NULL)
		return init_sam_from_ldap(user, global_ldap_ent.ldap_struct,
	return False;

Compleatly ignores it, and begins with the next user.

The fix:  Swap the init_sam_from_ldap and the ldap_next_entry calls

I have a patch (for HEAD) that moves ldapsam to the new passdb
interface.  I'm currently testing it - hence finding this bug :-). 
(I'll include this fix in the patch).

I'll post it for comments once I'm comfortable with it.  (It will also
feature the non-unix-accounts extension).

Andrew Bartlett

Andrew Bartlett                                 abartlet at pcug.org.au
Manager, Authentication Subsystems, Samba Team  abartlet at samba.org
Student Network Administrator, Hawker College   abartlet at hawkerc.net
http://samba.org     http://build.samba.org     http://hawkerc.net

More information about the samba-technical mailing list