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