Commit 44ad6eb8 authored by Quanah Gibson-Mount's avatar Quanah Gibson-Mount
Browse files

ITS#6600

parent 96a068cc
...@@ -8,6 +8,7 @@ OpenLDAP 2.4.24 Engineering ...@@ -8,6 +8,7 @@ OpenLDAP 2.4.24 Engineering
Fixed slapd-bdb entry cache delete failure (ITS#6577) Fixed slapd-bdb entry cache delete failure (ITS#6577)
Fixed slapd-null back-config support (ITS#6624) Fixed slapd-null back-config support (ITS#6624)
Fixed slapo-pcache callback freeing (ITS#6640) Fixed slapo-pcache callback freeing (ITS#6640)
Fixed slapo-pcache to ignore undefined attrs (ITS#6600)
Fixed slapo-ppolicy don't update opattrs on consumers (ITS#6608) Fixed slapo-ppolicy don't update opattrs on consumers (ITS#6608)
Fixed slapo-syncprov to send error if consumer is newer (ITS#6606) Fixed slapo-syncprov to send error if consumer is newer (ITS#6606)
......
...@@ -3122,19 +3122,30 @@ get_attr_set( ...@@ -3122,19 +3122,30 @@ get_attr_set(
query_manager* qm, query_manager* qm,
int num ) int num )
{ {
int i; int i = 0;
int count = 0; int count = 0;
if ( attrs ) { if ( attrs ) {
for ( ; attrs[count].an_name.bv_val; count++ ); for ( ; attrs[i].an_name.bv_val; i++ ) {
/* only count valid attribute names
* (searches ignore others, this overlay does the same) */
if ( attrs[i].an_desc ) {
count++;
}
}
} }
/* recognize a single "*" or a "1.1" */ /* recognize default or explicit single "*" */
if ( count == 0 ) { if ( ! attrs ||
( i == 1 && bvmatch( &attrs[0].an_name, slap_bv_all_user_attrs ) ) )
{
count = 1; count = 1;
attrs = slap_anlist_all_user_attributes; attrs = slap_anlist_all_user_attributes;
} else if ( count == 1 && bvmatch( &attrs[0].an_name, slap_bv_no_attrs ) ) { /* recognize implicit (no valid attributes) or explicit single "1.1" */
} else if ( count == 0 ||
( i == 1 && bvmatch( &attrs[0].an_name, slap_bv_no_attrs ) ) )
{
count = 0; count = 0;
attrs = NULL; attrs = NULL;
} }
...@@ -3155,6 +3166,8 @@ get_attr_set( ...@@ -3155,6 +3166,8 @@ get_attr_set(
} }
for ( a2 = attrs; a2->an_name.bv_val; a2++ ) { for ( a2 = attrs; a2->an_name.bv_val; a2++ ) {
if ( !a2->an_desc && !bvmatch( &a2->an_name, slap_bv_all_user_attrs ) ) continue;
if ( !an_find( qm->attr_sets[i].attrs, &a2->an_name ) ) { if ( !an_find( qm->attr_sets[i].attrs, &a2->an_name ) ) {
found = 0; found = 0;
break; break;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment