https://bugs.openldap.org/show_bug.cgi?id=10523
--- Comment #2 from Howard Chu hyc@openldap.org --- I guess you can do this if you really want to.
diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c index 9e6fab9ede..503f18c097 100644 --- a/libraries/liblmdb/mdb.c +++ b/libraries/liblmdb/mdb.c @@ -7307,7 +7307,7 @@ static void mdb_rpage_dispose(MDB_env *env, MDB_ID3 *id3) static void mdb_page_set_checksum(MDB_env *env, MDB_page *mp, size_t size) { MDB_val src, dst, *key; - src.mv_size = size - env->me_sumsize; + src.mv_size = size - env->me_sumsize - env->me_esumsize; src.mv_data = mp; dst.mv_size = env->me_sumsize; dst.mv_data = (char *)src.mv_data + src.mv_size; @@ -7322,7 +7322,7 @@ static int mdb_page_chk_checksum(MDB_env *env, MDB_page *mp, size_t size) { MDB_val src, dst, chk, *key; char sumbuf[256]; - src.mv_size = size - env->me_sumsize; + src.mv_size = size - env->me_sumsize - env->me_esumsize; src.mv_data = mp; chk.mv_size = env->me_sumsize; chk.mv_data = (char *)src.mv_data + src.mv_size;
Still it doesn't make a lot of sense since any authenticated encryption mechanism *will* return an error code if the decryption fails for any reason. There is no value add here, in routine use.