Author: rmeggins
Update of /cvs/dirsec/ldapserver/ldap/servers/slapd
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv28075/ldapserver/ldap/servers/slapd
Modified Files:
attr.c ava.c
Log Message:
Resolves: bug 204966
Bug Description: WinSync ignores entry if NT attributes are added later.
Reviewed by: nkinder (Thanks!)
Fix Description: If we are replaying a modify operation, we need to check if the ntUser
objectclass is being added along with the other attributes that tell the sync service to
sync this entry. If the objectclass is being added or replaced, we check the existing
entry to see if it is still a sync-able entry. If it is, we call process_replay_add to
add the entry. I changed this function to accept a Slapi_Entry to add rather than the
operation structure. Finally, I had to change the way we send the Account Control flags
to take into account an entry that may have been added as a result of a modify operation.
I fixed a memory leak when setting the Slapi_Attr attribute type, and cleaned up a
compiler warning.
NOTE: There will be no clear text password to send (unless the userPassword was modified
in the same modify operation). This means the account will be added to Windows, and will
be enabled, but will be essentially unusable - the user cannot login - until either the
user modifies the password on the directory server side, or the administrator resets the
password.
Platforms tested: RHEL5
Flag Day: no
Doc impact: yes - we will have to document the new winsync behavior
Index: attr.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/attr.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- attr.c 30 Aug 2007 15:56:36 -0000 1.9
+++ attr.c 13 Jan 2009 18:28:34 -0000 1.10
@@ -707,6 +707,7 @@
if((NULL == a) || (NULL == type)) {
rc = -1;
} else {
+ slapi_ch_free_string(&a->a_type);
a->a_type = slapi_ch_strdup(type);
}
return rc;
Index: ava.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/ava.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ava.c 6 Jan 2009 22:50:30 -0000 1.9
+++ ava.c 13 Jan 2009 18:28:34 -0000 1.10
@@ -50,8 +50,6 @@
#endif
#include "slap.h"
-static void strcpy_special_undo();
-
int
get_ava(
BerElement *ber,
Show replies by date