From c2cac4588a40480c020d320b544bc5f8e72adb11 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Tue, 11 Jun 2013 17:13:08 -0700 Subject: [PATCH] Fix CURSOR_NEXT/PREV on emptied DB --- libraries/liblmdb/mdb.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c index a90d7d5..f52dda7 100644 --- a/libraries/liblmdb/mdb.c +++ b/libraries/liblmdb/mdb.c @@ -4935,9 +4935,11 @@ fetchm: case MDB_NEXT: case MDB_NEXT_DUP: case MDB_NEXT_NODUP: - if (!(mc->mc_flags & C_INITIALIZED)) + if (!(mc->mc_flags & C_INITIALIZED)) { rc = mdb_cursor_first(mc, key, data); - else + if (rc) + break; + } else rc = mdb_cursor_next(mc, key, data, op); break; case MDB_PREV: @@ -4945,6 +4947,8 @@ fetchm: case MDB_PREV_NODUP: if (!(mc->mc_flags & C_INITIALIZED)) { rc = mdb_cursor_last(mc, key, data); + if (rc) + break; mc->mc_flags |= C_INITIALIZED; mc->mc_ki[mc->mc_top]++; }