]> git.sur5r.net Git - openldap/commitdiff
ITS#5319
authorQuanah Gibson-Mount <quanah@openldap.org>
Tue, 12 Feb 2008 00:16:18 +0000 (00:16 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Tue, 12 Feb 2008 00:16:18 +0000 (00:16 +0000)
CHANGES
servers/slapd/back-bdb/modrdn.c
tests/scripts/test005-modrdn

diff --git a/CHANGES b/CHANGES
index 727dee2a14af41dcc99ebcb6281d6dbea221ecd4..42cde2dcf044870610b870d1f37c4a2955a064b5 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -20,6 +20,7 @@ OpenLDAP 2.4.8 Engineering
        Fixed slapd NULL set values (ITS#5286)
        Fixed slapd segv with SASL/OTP (ITS#5259)
        Fixed slapd-bdb segv with bdb4.6 (ITS#5322)
+       Fixed slapd-bdb modrdn to same dn (ITS#5319)
        Added slapd-bdb/slapd-hdb DB encryption (ITS#5359)
        Fixed slapd-ldif delete (ITS#5265)
        Fixed slapd-monitor crash (ITS#5311)
index c5bd76f1367f97f7afb958120dd4ff7c813f9ba2..677e1cc2856e87d8499c7d19cbf508199fb5c603 100644 (file)
@@ -559,6 +559,9 @@ retry:      /* transaction retry */
        case DB_NOTFOUND:
                break;
        case 0:
+               /* Allow rename to same DN */
+               if ( nei == ei )
+                       break;
                rs->sr_err = LDAP_ALREADY_EXISTS;
                goto return_results;
        default:
index 65e2af3992640e62b48e0e7f9e2c1226d74d5fa7..a3bc64d55dc24ef62a92c26c2e92b2f8d1891d2b 100755 (executable)
@@ -261,6 +261,36 @@ case $RC in
        ;;
 esac
 
+echo "Testing modrdn with newRdn exact same as target..."
+$LDAPMODRDN -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD > \
+       $TESTOUT 2>&1 'cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example, dc=com' 'cn=James A Jones 1'
+
+RC=$?
+case $RC in
+0)
+       ;;
+*)
+       echo "ldapmodrdn failed ($RC)!"
+       test $KILLSERVERS != no && kill -HUP $KILLPIDS
+       exit $RC
+       ;;
+esac
+
+echo "Testing modrdn with newRdn same as target, changed case..."
+$LDAPMODRDN -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD > \
+       $TESTOUT 2>&1 'cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example, dc=com' 'cn=James A JONES 1'
+
+RC=$?
+case $RC in
+0)
+       ;;
+*)
+       echo "ldapmodrdn failed ($RC)!"
+       test $KILLSERVERS != no && kill -HUP $KILLPIDS
+       exit $RC
+       ;;
+esac
+
 test $KILLSERVERS != no && kill -HUP $KILLPIDS
 
 echo ">>>>> Test succeeded"