]> git.sur5r.net Git - openldap/commitdiff
Plug mdb_cursor_renew() memleak
authorHallvard Furuseth <hallvard@openldap.org>
Mon, 22 Apr 2013 18:46:56 +0000 (20:46 +0200)
committerHoward Chu <hyc@symas.com>
Wed, 1 May 2013 04:06:36 +0000 (21:06 -0700)
libraries/liblmdb/mdb.c

index 30475ac7e522ed9a654895bafcc1d3a76082b1ae..83dcb2506b186008dff6e159573436bbc07f55e0 100644 (file)
@@ -5840,13 +5840,19 @@ mdb_cursor_open(MDB_txn *txn, MDB_dbi dbi, MDB_cursor **ret)
 int
 mdb_cursor_renew(MDB_txn *txn, MDB_cursor *mc)
 {
+       unsigned flags;
+
        if (txn == NULL || mc == NULL || mc->mc_dbi >= txn->mt_numdbs)
                return EINVAL;
 
        if (txn->mt_cursors)
                return EINVAL;
 
+       flags = mc->mc_flags;
+
        mdb_cursor_init(mc, txn, mc->mc_dbi, mc->mc_xcursor);
+
+       mc->mc_flags |= (flags & C_ALLOCD);
        return MDB_SUCCESS;
 }