Does slapd/acl.c:acl_set_cb_gather() make sense? It loops through the search attributes and sets bvalsp to each recognized attribute in turn without using it for anything else. After the loop it uses the final recognized attribute in slap_set_join(), thus ignoring previous attrs.