From 0fff927889b075442ed7130f376118c31fda1f32 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 16 May 2019 13:57:04 +0200 Subject: [PATCH] kbx: Fix an endless loop under Windows due to an incomplete fix. * kbx/keybox-search.c (keybox_search): We need to seek to the last position in all cases not just when doing a NEXT. -- This is because search from the beginning needs a keybox_search_reset. We can only make an exception for KEYDB_SEARCH_MODE_FIRST.. Fixes-commit: 6f72aa821407e47ad3963e72e139f2ca2c69d9dd GnuPG-bug-id: 4505 Signed-off-by: Werner Koch --- kbx/keybox-search.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kbx/keybox-search.c b/kbx/keybox-search.c index 9c396449a..c07fe81eb 100644 --- a/kbx/keybox-search.c +++ b/kbx/keybox-search.c @@ -903,9 +903,9 @@ keybox_search (KEYBOX_HANDLE hd, KEYBOX_SEARCH_DESC *desc, size_t ndesc, return rc; } /* log_debug ("%s: re-opened file\n", __func__); */ - if (ndesc && desc[0].mode == KEYDB_SEARCH_MODE_NEXT && lastfoundoff) + if (ndesc && desc[0].mode != KEYDB_SEARCH_MODE_FIRST && lastfoundoff) { - /* Search mode is next and the last search operation + /* Search mode is not first and the last search operation * returned a blob which also was not the first one. We now * need to skip over that blob and hope that the file has * not changed. */