X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Foverlays%2Frwmmap.c;h=95eec2f92229c7e92ca114740b7b5fca98773546;hb=8bdfd2edbb7a09f5bfe96b2bca043680f731237a;hp=67655c3068e95187125da1c7d33e56faccf48eaf;hpb=0374a8341a07b28ff6804c1ea46d06acfa074227;p=openldap diff --git a/servers/slapd/overlays/rwmmap.c b/servers/slapd/overlays/rwmmap.c index 67655c3068..95eec2f922 100644 --- a/servers/slapd/overlays/rwmmap.c +++ b/servers/slapd/overlays/rwmmap.c @@ -121,6 +121,15 @@ rwm_mapping( struct ldapmap *map, struct berval *s, struct ldapmapping **m, int assert( m != NULL ); + /* let special attrnames slip through (ITS#5760) */ + if ( bvmatch( s, slap_bv_no_attrs ) + || bvmatch( s, slap_bv_all_user_attrs ) + || bvmatch( s, slap_bv_all_operational_attrs ) ) + { + *m = NULL; + return 0; + } + if ( remap == RWM_REMAP ) { tree = map->remap; @@ -312,7 +321,7 @@ rwm_map_attrnames( if ( j == 0 && i != 0 ) { memset( &(*anp)[0], 0, sizeof( AttributeName ) ); - BER_BVSTR( &(*anp)[0].an_name, LDAP_NO_ATTRS ); + (*anp)[0].an_name = *slap_bv_no_attrs; j = 1; } memset( &(*anp)[j], 0, sizeof( AttributeName ) );