From 380806eebeaaa2e896751930322b54aad368a821 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Fri, 5 Apr 2002 05:59:04 +0000 Subject: [PATCH] ITS#1726, always use bdb_db_hash(). --- servers/slapd/back-bdb/dbcache.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) 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 ); -- 2.39.5