Causes Bus Error on SPARC
vmware
Howard Chu 12 years ago
parent f80171e079
commit 8c1d95a438
  1. 6
      libraries/liblmdb/mdb.c

@ -4110,16 +4110,18 @@ mdb_page_search(MDB_cursor *mc, MDB_val *key, int flags)
if (*mc->mc_dbflag & DB_STALE) {
MDB_val data;
int exact = 0;
uint16_t flags;
MDB_node *leaf = mdb_node_search(&mc2,
&mc->mc_dbx->md_name, &exact);
if (!exact)
return MDB_NOTFOUND;
mdb_node_read(mc->mc_txn, leaf, &data);
memcpy(&flags, ((char *) data.mv_data + offsetof(MDB_db, md_flags)),
sizeof(uint16_t));
/* The txn may not know this DBI, or another process may
* have dropped and recreated the DB with other flags.
*/
if (mc->mc_db->md_flags != *(uint16_t *)
((char *) data.mv_data + offsetof(MDB_db, md_flags)))
if (mc->mc_db->md_flags != flags)
return MDB_INCOMPATIBLE;
memcpy(mc->mc_db, data.mv_data, sizeof(MDB_db));
}

Loading…
Cancel
Save