From 84e0958b28fccb5cc36de90094aebc6902145c07 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Wed, 3 Oct 2018 21:58:32 +0100 Subject: [PATCH 049/109] ITS#8923 fix dyngroup NO_SUCH_OBJECT error handling --- servers/slapd/backend.c | 2 +- tests/data/dynlist.out | 3 +++ tests/scripts/test044-dynlist | 9 +++++---- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/servers/slapd/backend.c b/servers/slapd/backend.c index 445a2cb57..0a3dafab8 100644 --- a/servers/slapd/backend.c +++ b/servers/slapd/backend.c @@ -1520,7 +1520,7 @@ fe_acl_group( op->o_private = o_priv; if ( rc2 != 0 ) { /* give up... */ - rc = LDAP_OTHER; + rc = (rc2 == LDAP_NO_SUCH_OBJECT) ? rc2 : LDAP_OTHER; goto loopit; } } diff --git a/tests/data/dynlist.out b/tests/data/dynlist.out index 429039b67..8caf0e22f 100644 --- a/tests/data/dynlist.out +++ b/tests/data/dynlist.out @@ -198,6 +198,9 @@ memberURL: ldap:///ou=People,dc=example,dc=com??sub?(objectClass=person) # Testing list compare... TRUE +# Testing list compare... (should return FALSE) +FALSE + # Testing list compare (should return FALSE)... FALSE diff --git a/tests/scripts/test044-dynlist b/tests/scripts/test044-dynlist index e5a0c47dc..8caf50ded 100755 --- a/tests/scripts/test044-dynlist +++ b/tests/scripts/test044-dynlist @@ -477,12 +477,12 @@ $LDAPCOMPARE -h $LOCALHOST -p $PORT1 \ RC=$? case $RC in 5) - echo "ldapcompare returned FALSE ($RC)!" - test $KILLSERVERS != no && kill -HUP $KILLPIDS - exit $RC + echo "ldapcompare returned FALSE ($RC)" ;; 6) - echo "ldapcompare returned TRUE ($RC)" + echo "ldapcompare returned TRUE ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC ;; 0) echo "ldapcompare returned success ($RC)!" @@ -497,6 +497,7 @@ case $RC in esac echo "" >> $SEARCHOUT +CMPDN="$BJORNSDN" echo "Testing list compare (should return FALSE)..." echo "# Testing list compare (should return FALSE)..." >> $SEARCHOUT $LDAPCOMPARE -h $LOCALHOST -p $PORT1 \ -- 2.19.1