]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9359 Do not create an empty add
authorOndřej Kuzník <ondra@mistotebe.net>
Wed, 30 Sep 2020 18:25:56 +0000 (19:25 +0100)
committerQuanah Gibson-Mount <quanah@openldap.org>
Wed, 30 Sep 2020 21:54:51 +0000 (21:54 +0000)
servers/slapd/syncrepl.c

index 88af1011aa7e2283dd2535eeee1ccd52b8db242a..7e8a172825a67bdf99ac91502fb02365bc009d55 100644 (file)
@@ -2011,7 +2011,10 @@ static Modifications *mods_dup( Operation *op, Modifications *modlist, int match
                                modlist->sml_desc == slap_schema.si_ad_modifyTimestamp ||
                                modlist->sml_desc == slap_schema.si_ad_entryCSN )
                                continue;
-                       if ( modlist->sml_op == LDAP_MOD_REPLACE ) {
+                       if ( modlist->sml_values == NULL && modlist->sml_op == LDAP_MOD_REPLACE ) {
+                               /* ITS#9359 This adds no values, just change to a delete op */
+                               modlist->sml_op = LDAP_MOD_DELETE;
+                       } else if ( modlist->sml_op == LDAP_MOD_REPLACE ) {
                                mod = op->o_tmpalloc( sizeof(Modifications), op->o_tmpmemctx );
                                mod->sml_desc = modlist->sml_desc;
                                mod->sml_values = NULL;