diff options
author | Werner Koch <[email protected]> | 2019-05-16 11:57:04 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2019-05-16 12:03:00 +0000 |
commit | 0fff927889b075442ed7130f376118c31fda1f32 (patch) | |
tree | 888eab922553b04e4704cc4213f3ea861ed1d264 | |
parent | kbx: Fix deadlock in gpgsm on Windows due to a sharing violation. (diff) | |
download | gnupg-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.c | 4 |
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. */ |