diff options
author | Werner Koch <[email protected]> | 2014-05-14 14:32:49 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2014-05-14 16:13:11 +0000 |
commit | 25036ec6abbc0c9d0003dcfe227724038c35a304 (patch) | |
tree | 2628b702861e55fc78e765c531c68594fd2d4e66 /kbx/keybox-search.c | |
parent | w32: Make make_absfilename work with drive letters. (diff) | |
download | gnupg-25036ec6abbc0c9d0003dcfe227724038c35a304.tar.gz gnupg-25036ec6abbc0c9d0003dcfe227724038c35a304.zip |
gpg: Fix uninitialized access to search descindex with gpg keyboxes.
* kbx/keybox-search.c (keybox_search): Add arg R_DESCINDEX. Chnage
both callers.
* g10/keydb.c (keydb_search): Always set DESCINDEX.
--
This only affects the new keybox for OpenPGP keys in 2.1. The bug
exhibited itself by running GPA's backup command on Windows.
Diffstat (limited to 'kbx/keybox-search.c')
-rw-r--r-- | kbx/keybox-search.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/kbx/keybox-search.c b/kbx/keybox-search.c index 798079488..ba284f9b5 100644 --- a/kbx/keybox-search.c +++ b/kbx/keybox-search.c @@ -720,7 +720,8 @@ keybox_search_reset (KEYBOX_HANDLE hd) /* Note: When in ephemeral mode the search function does visit all blobs but in standard mode, blobs flagged as ephemeral are ignored. */ int -keybox_search (KEYBOX_HANDLE hd, KEYBOX_SEARCH_DESC *desc, size_t ndesc) +keybox_search (KEYBOX_HANDLE hd, KEYBOX_SEARCH_DESC *desc, size_t ndesc, + size_t *r_descindex) { int rc; size_t n; @@ -945,6 +946,10 @@ keybox_search (KEYBOX_HANDLE hd, KEYBOX_SEARCH_DESC *desc, size_t ndesc) } continue; found: + /* Record which DESC we matched on. Note this value is only + meaningful if this function returns with no errors. */ + if(r_descindex) + *r_descindex = n; for (n=any_skip?0:ndesc; n < ndesc; n++) { /* if (desc[n].skipfnc */ |