g10: Have keydb_search_first call keydb_search_reset before searching.
authorNeal H. Walfield <neal@g10code.com>
Mon, 31 Aug 2015 07:22:23 +0000 (09:22 +0200)
committerNeal H. Walfield <neal@g10code.com>
Mon, 31 Aug 2015 09:30:55 +0000 (11:30 +0200)
* g10/keydb.c (keydb_search_first): Reset the handle before starting
the search.

--
Signed-off-by: Neal H. Walfield <neal@g10code.com>.
This bug hasn't shown up yet in practice, because keydb_search_first
is always called immediately after a keydb_new.  This changes cleans
up the semantics and will hopefully prevent future bugs.

g10/keydb.c

index c976871..ea3280f 100644 (file)
@@ -1731,6 +1731,10 @@ keydb_search_first (KEYDB_HANDLE hd)
   gpg_error_t err;
   KEYDB_SEARCH_DESC desc;
 
   gpg_error_t err;
   KEYDB_SEARCH_DESC desc;
 
+  err = keydb_search_reset (hd);
+  if (err)
+    return err;
+
   memset (&desc, 0, sizeof desc);
   desc.mode = KEYDB_SEARCH_MODE_FIRST;
   err = keydb_search (hd, &desc, 1, NULL);
   memset (&desc, 0, sizeof desc);
   desc.mode = KEYDB_SEARCH_MODE_FIRST;
   err = keydb_search (hd, &desc, 1, NULL);