diff options
author | Werner Koch <[email protected]> | 2002-04-18 10:50:05 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2002-04-18 10:50:05 +0000 |
commit | bf7cef8ebfb746149ff58bbf0f035530f06a2c7c (patch) | |
tree | d107fe082d0ff9c0477f7ef6f6f0c039ca33c2b6 | |
parent | * getkey.c (premerge_public_with_secret): Fixed 0x12345678! syntax (diff) | |
download | gnupg-bf7cef8ebfb746149ff58bbf0f035530f06a2c7c.tar.gz gnupg-bf7cef8ebfb746149ff58bbf0f035530f06a2c7c.zip |
* getkey.c (lookup): Advance the searchmode after a search FIRST.
-rw-r--r-- | g10/ChangeLog | 1 | ||||
-rw-r--r-- | g10/getkey.c | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog index a1c33f2c8..7cd5f711e 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -2,6 +2,7 @@ * getkey.c (premerge_public_with_secret): Fixed 0x12345678! syntax for use with secret keys. + (lookup): Advance the searchmode after a search FIRST. * seckey-cert.c (do_check): Always calculate the old checksum for use after unprotection. diff --git a/g10/getkey.c b/g10/getkey.c index 33d4f03b5..f8c72a8fd 100644 --- a/g10/getkey.c +++ b/g10/getkey.c @@ -2003,6 +2003,12 @@ lookup( GETKEY_CTX ctx, KBNODE *ret_keyblock, int secmode ) rc = 0; while (!(rc = keydb_search (ctx->kr_handle, ctx->items, ctx->nitems))) { + /* If we are searching for the first key we have to make sure + that the next interation does not no an implicit reset. + This can be triggered by an empty key ring. */ + if (ctx->nitems && ctx->items->mode == KEYDB_SEARCH_MODE_FIRST) + ctx->items->mode = KEYDB_SEARCH_MODE_NEXT; + rc = keydb_get_keyblock (ctx->kr_handle, &ctx->keyblock); if (rc) { log_error ("keydb_get_keyblock failed: %s\n", g10_errstr(rc)); |