From: Howard Chu Date: Fri, 5 Apr 2002 05:59:04 +0000 (+0000) Subject: ITS#1726, always use bdb_db_hash(). X-Git-Tag: OPENLDAP_REL_ENG_2_MP~254 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=380806eebeaaa2e896751930322b54aad368a821;p=openldap ITS#1726, always use bdb_db_hash(). --- diff --git a/servers/slapd/back-bdb/dbcache.c b/servers/slapd/back-bdb/dbcache.c index df6e667738..85ed700fbb 100644 --- a/servers/slapd/back-bdb/dbcache.c +++ b/servers/slapd/back-bdb/dbcache.c @@ -22,7 +22,6 @@ /* Pass-thru hash function. Since the indexer is already giving us hash * values as keys, we don't need BDB to re-hash them. */ -#if LUTIL_HASH_BYTES == 4 static u_int32_t bdb_db_hash( DB *db, @@ -30,10 +29,19 @@ bdb_db_hash( u_int32_t length ) { - u_int32_t *ret = (u_int32_t *)bytes; - return *ret; + u_int32_t ret = 0; + unsigned char *dst = (unsigned char *)&ret; + const unsigned char *src = (const unsigned char *)bytes; + + if ( length > sizeof(u_int32_t) ) + length = sizeof(u_int32_t); + + while ( length ) { + *dst++ = *src++; + length--; + } + return ret; } -#endif int bdb_db_cache( @@ -90,9 +98,7 @@ bdb_db_cache( } rc = db->bdi_db->set_pagesize( db->bdi_db, BDB_PAGESIZE ); -#if LUTIL_HASH_BYTES == 4 rc = db->bdi_db->set_h_hash( db->bdi_db, bdb_db_hash ); -#endif #ifdef BDB_IDL_MULTI rc = db->bdi_db->set_flags( db->bdi_db, DB_DUP | DB_DUPSORT ); rc = db->bdi_db->set_dup_compare( db->bdi_db, bdb_bt_compare );