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

Re: (ITS#7955) [LMDB] remove logically dead code



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/