diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index f0c503b915..41594bb367 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -57,8 +57,9 @@ LDAP_SLAPD_F (AttributeDescription *) ad_dup LDAP_P(( LDAP_SLAPD_F (void) ad_destroy LDAP_P(( AttributeDescription * )); -#define ad_cmp(l,r) (((l)->ad_cname.bv_len == (r)->ad_cname.bv_len) \ - ? strcasecmp((l)->ad_cname.bv_val, (r)->ad_cname.bv_val ) : 1 ) +#define ad_cmp(l,r) (((l)->ad_cname.bv_len < (r)->ad_cname.bv_len) \ + ? -1 : (((l)->ad_cname.bv_len > (r)->ad_cname.bv_len) \ + ? strcasecmp((l)->ad_cname.bv_val, (r)->ad_cname.bv_val ) : 1 )) LDAP_SLAPD_F (int) is_ad_subtype LDAP_P(( AttributeDescription *sub,