Преглед изворни кода

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;
 		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);
 	op = slapi_mod_get_operation(smod);
 	type = slapi_mod_get_type(smod);
 	type = slapi_mod_get_type(smod);
 	if (SLAPI_IS_MOD_ADD(op)) { /* make sure value is not there */
 	if (SLAPI_IS_MOD_ADD(op)) { /* make sure value is not there */