From 0fb5cccfabffd94b3ebec2a0c24423741c0733e1 Mon Sep 17 00:00:00 2001 From: Rich Megginson Date: Wed, 4 Feb 2009 20:40:34 +0000 Subject: Resolves: bug 483256 Bug Description: DS crash when modify entry that does not exist in AD Reviewed by: nkinder (Thanks!) Fix Description: The function that checks to see if the mod has already been made to the AD entry should just return 0 if the AD entry does not exist or could not be found - in this case, the regular windows replay code will handle it. Platforms tested: RHEL5 Flag Day: no Doc impact: no --- ldap/servers/plugins/replication/windows_protocol_util.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ldap/servers/plugins/replication/windows_protocol_util.c b/ldap/servers/plugins/replication/windows_protocol_util.c index 7e00e106..8cd5bdfa 100644 --- a/ldap/servers/plugins/replication/windows_protocol_util.c +++ b/ldap/servers/plugins/replication/windows_protocol_util.c @@ -1817,6 +1817,14 @@ mod_already_made(Private_Repl_Protocol *prp, Slapi_Mod *smod) return 1; } + if (!ad_entry) { /* mods cannot already have been made */ + slapi_log_error(SLAPI_LOG_REPL, repl_plugin_name, + "%s: mod_already_made: " + "AD entry not found\n", + agmt_get_long_name(prp->agmt)); + return retval; /* just allow - will probably fail later if entry really doesn't exist */ + } + op = slapi_mod_get_operation(smod); type = slapi_mod_get_type(smod); if (SLAPI_IS_MOD_ADD(op)) { /* make sure value is not there */ -- cgit