瀏覽代碼

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

Rich Megginson 17 年之前
父節點
當前提交
0fb5cccfab
共有 1 個文件被更改,包括 8 次插入0 次删除
  1. 8 0
      ldap/servers/plugins/replication/windows_protocol_util.c

+ 8 - 0
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 */