diff --git a/servers/slapd/back-bdb/dn2id.c b/servers/slapd/back-bdb/dn2id.c index bddbe792830cea410e44daa704d7170462d25322..d4462365ceb8a47e68266bd5e16900c8f5cfc899 100644 --- a/servers/slapd/back-bdb/dn2id.c +++ b/servers/slapd/back-bdb/dn2id.c @@ -468,11 +468,11 @@ hdb_dup_compare( cn = (diskNode *)curkey->data; /* data is not aligned, cannot compare directly */ - ul = un->nrdnlen[0] << 8 | un->nrdnlen[1]; - cl = cn->nrdnlen[0] << 8 | cn->nrdnlen[1]; + rc = un->nrdnlen[0] - cn->nrdnlen[0]; + if ( rc ) return rc; + rc = un->nrdnlen[1] - cn->nrdnlen[1]; + if ( rc ) return rc; - rc = ul - cl; - if( rc ) return rc; return strcmp( un->nrdn, cn->nrdn ); }