From 36b8096947d9c7bcb3e354eb8f4ac35b7cc03bb8 Mon Sep 17 00:00:00 2001
From: Kurt Zeilenga <kurt@openldap.org>
Date: Wed, 29 Aug 2001 19:45:10 +0000
Subject: [PATCH] Import ACL be==NULL changes

---
 servers/slapd/acl.c         | 9 ++++++++-
 servers/slapd/filterentry.c | 7 +++----
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/servers/slapd/acl.c b/servers/slapd/acl.c
index baaf23df44..015f406f57 100644
--- a/servers/slapd/acl.c
+++ b/servers/slapd/acl.c
@@ -97,11 +97,18 @@ access_allowed(
 	    access2str( access ),
 		e->e_dn, attr );
 
-	assert( be != NULL );
 	assert( e != NULL );
 	assert( attr != NULL );
 	assert( access > ACL_NONE );
 
+	if ( op == NULL ) {
+		/* no-op call */
+		return 1;
+	}
+
+	if ( be == NULL ) be = &backends[0];
+	assert( be != NULL );
+
 	/* grant database root access */
 	if ( be != NULL && be_isroot( be, op->o_ndn ) ) {
 		Debug( LDAP_DEBUG_ACL,
diff --git a/servers/slapd/filterentry.c b/servers/slapd/filterentry.c
index 6c310a0e7d..13ae1a1fbb 100644
--- a/servers/slapd/filterentry.c
+++ b/servers/slapd/filterentry.c
@@ -157,7 +157,7 @@ test_ava_filter(
 	int		i;
 	Attribute	*a;
 
-	if ( be != NULL && ! access_allowed( be, conn, op, e,
+	if ( !access_allowed( be, conn, op, e,
 		ava->aa_desc, ava->aa_value, ACL_SEARCH ) )
 	{
 		return LDAP_INSUFFICIENT_ACCESS;
@@ -242,8 +242,7 @@ test_presence_filter(
 	AttributeDescription *desc
 )
 {
-	if ( be != NULL && ! access_allowed( be, conn, op, e,
-		desc, NULL, ACL_SEARCH ) )
+	if ( !access_allowed( be, conn, op, e, desc, NULL, ACL_SEARCH ) )
 	{
 		return LDAP_INSUFFICIENT_ACCESS;
 	}
@@ -333,7 +332,7 @@ test_substrings_filter(
 
 	Debug( LDAP_DEBUG_FILTER, "begin test_substrings_filter\n", 0, 0, 0 );
 
-	if ( be != NULL && ! access_allowed( be, conn, op, e,
+	if ( !access_allowed( be, conn, op, e,
 		f->f_sub_desc, NULL, ACL_SEARCH ) )
 	{
 		return LDAP_INSUFFICIENT_ACCESS;
-- 
GitLab