aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2019-05-16 11:57:04 +0000
committerWerner Koch <[email protected]>2019-05-16 12:03:00 +0000
commit0fff927889b075442ed7130f376118c31fda1f32 (patch)
tree888eab922553b04e4704cc4213f3ea861ed1d264
parentkbx: Fix deadlock in gpgsm on Windows due to a sharing violation. (diff)
downloadgnupg-0fff927889b075442ed7130f376118c31fda1f32.tar.gz
gnupg-0fff927889b075442ed7130f376118c31fda1f32.zip
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 <[email protected]>
-rw-r--r--kbx/keybox-search.c4
1 files 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. */