From a79b0ed5af44355bd4247edfe73a0cd40bcc8245 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= <ondra@mistotebe.net>
Date: Wed, 5 Jun 2019 14:32:24 +0200
Subject: [PATCH] ITS#9000 memberof: noop a noop rename

---
 servers/slapd/overlays/memberof.c | 6 ++++++
 tests/scripts/test052-memberof    | 5 +++++
 2 files changed, 11 insertions(+)

diff --git a/servers/slapd/overlays/memberof.c b/servers/slapd/overlays/memberof.c
index 7e0c8f22ba..60c103f697 100644
--- a/servers/slapd/overlays/memberof.c
+++ b/servers/slapd/overlays/memberof.c
@@ -364,6 +364,12 @@ memberof_value_modify(
 	struct berval	values[ 4 ], nvalues[ 4 ];
 	int		mcnt = 0;
 
+	if ( old_ndn != NULL && new_ndn != NULL &&
+		ber_bvcmp( old_ndn, new_ndn ) == 0 ) {
+	    /* DNs compare equal, it's a noop */
+	    return;
+	}
+
 	op2.o_tag = LDAP_REQ_MODIFY;
 
 	op2.o_req_dn = *ndn;
diff --git a/tests/scripts/test052-memberof b/tests/scripts/test052-memberof
index bb0e127041..069ace96cb 100755
--- a/tests/scripts/test052-memberof
+++ b/tests/scripts/test052-memberof
@@ -262,6 +262,11 @@ $LDAPMODIFY -h $LOCALHOST -p $PORT1 \
 	>> $TESTOUT 2>&1 << EOF
 dn: cn=Cartoonia,ou=Groups,$BASEDN
 changetype: modrdn
+newrdn: cn=Toon town
+deleteoldrdn: 1
+
+dn: cn=Toon town,ou=Groups,$BASEDN
+changetype: modrdn
 newrdn: cn=Toon Town
 deleteoldrdn: 1
 EOF
-- 
GitLab