[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#7987) SIGSEGV in LMDB while adding ldap-entries



This is a multi-part message in MIME format.
--------------090506050608000200000309
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

(1) I can Ñ?onfirm once again - the bug is fixed.

(2) Previously noted failure "DN index delete failed" caused by another 
(local) bug.

(3) Feature "single write txn" need a minor fix, patch attached.

Leonid.

---

The attached files is derived from OpenLDAP Software. All of the 
modifications
to OpenLDAP Software represented in the following patch(es) were 
developed by
Peter-Service LLC, Moscow, Russia. Peter-Service LLC has not assigned 
rights
and/or interest in this work to any party. I, Leonid Yuriev am 
authorized by
Peter-Service LLC, my employer, to release this work under the following
terms.

Peter-Service LLC hereby places the following modifications to OpenLDAP 
Software
(and only these modifications) into the public domain. Hence, these
modifications may be freely used and/or redistributed for any purpose 
with or
without attribution and/or other notice.



--------------090506050608000200000309
Content-Type: text/x-patch;
 name="excessive-space-single-write-txn.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="excessive-space-single-write-txn.patch"

commit 02094a10018e1ebcae32b920f9d93d300a810f29
Author: Leo Yuriev <leo@yuriev.ru>
Date:   2014-12-02 14:02:02 +0300

    fix excessive space (likely a typo) for single write txn.

diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c
index 6e9119d..7587434 100644
--- a/libraries/liblmdb/mdb.c
+++ b/libraries/liblmdb/mdb.c
@@ -4589,7 +4589,7 @@ mdb_env_open(MDB_env *env, const char *path, unsigned int flags, mdb_mode_t mode
 		if (!(flags & MDB_RDONLY)) {
 			MDB_txn *txn;
 			int tsize = sizeof(MDB_txn), size = tsize + env->me_maxdbs *
-				(sizeof(MDB_db)+sizeof(MDB_cursor)+sizeof(unsigned int)+1);
+				(sizeof(MDB_db)+sizeof(MDB_cursor *)+sizeof(unsigned int)+1);
 			txn = calloc(1, size);
 			if (txn) {
 				txn->mt_dbs = (MDB_db *)((char *)txn + tsize);

--------------090506050608000200000309--