Full_Name: Jean-Christophe Dubois Version: 2.4.40 OS: Linux URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (78.235.240.156) In mdb_cursor_prev() there is some dead code as the (op == MDB_PREV_DUP) cannot be reached in the else block of the following if condition: if (op == MDB_PREV || op == MDB_PREV_DUP) { ... } else { ... if (op == MDB_PREV_DUP) ... } The dead code can be removed. Patch available at the following URL: https://github.com/jcdubois/lmdb/commit/87c58701f7b7226d6d7bcf6be18db085cce0c592 JC
jcd@tribudubois.net wrote: > Full_Name: Jean-Christophe Dubois > Version: 2.4.40 > OS: Linux > URL: ftp://ftp.openldap.org/incoming/ > Submission from: (NULL) (78.235.240.156) > > > In mdb_cursor_prev() there is some dead code as the (op == MDB_PREV_DUP) cannot > be reached in the else block of the following if condition: Apparently caused by commit 6423c877 for ITS#7671. Unfortunately you've identified an actual bug, the current code will fail to return NOTFOUND when it should. I.e., if the caller used MDB_PREV_DUP and the current node has no DUPDATA. Fixed in mdb.master. > > if (op == MDB_PREV || op == MDB_PREV_DUP) { > ... > } else { > ... > if (op == MDB_PREV_DUP) > ... > } > > The dead code can be removed. > > Patch available at the following URL: > > https://github.com/jcdubois/lmdb/commit/87c58701f7b7226d6d7bcf6be18db085cce0c592 > > JC > > > -- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/
fixed in mdb.master
changed notes changed state Open to Test moved from Incoming to Software Bugs
changed state Test to Release
changed state Release to Closed