diff options
Diffstat (limited to 'g10/getkey.c')
| -rw-r--r-- | g10/getkey.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/g10/getkey.c b/g10/getkey.c index 6af6dc0a5..efb157645 100644 --- a/g10/getkey.c +++ b/g10/getkey.c @@ -799,10 +799,10 @@ leave: should be freed using release_kbnode(). If RET_KDBHD is not NULL, then the new database handle used to - conduct the search is returned in *RET_KDBHD. This can be used to - get subsequent results using keydb_search_next. Note: in this - case, no advanced filtering is done for subsequent results (e.g., - WANT_SECRET and PK->REQ_USAGE are not respected). + conduct the search is returned in *RET_KDBHD, holding the lock. + This can be used to get subsequent results using keydb_search_next. + Note: in this case, no advanced filtering is done for subsequent + results (e.g., WANT_SECRET and PK->REQ_USAGE are not respected). This function returns 0 on success. Otherwise, an error code is returned. In particular, GPG_ERR_NO_PUBKEY or GPG_ERR_NO_SECKEY @@ -895,6 +895,9 @@ key_byname (ctrl_t ctrl, GETKEY_CTX *retctx, strlist_t namelist, if (!ret_kb) ret_kb = &help_kb; + if (ret_kdbhd) + keydb_lock (ctx->kr_handle); + if (pk) { /* It is a bit tricky to allow returning an ADSK key: lookup |
