mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
gpg: Skip overlong keys and a print a warning.
* kbx/keybox-search.c (keybox_search): Add arg r_skipped and skip too long blobs. * sm/keydb.c (keydb_search): Call keybox_search with a dummy param. * g10/keydb.c (struct keydb_handle): Add field skipped_long_blobs. (keydb_search_reset): Reset that field. (keydb_search): Update that field. (keydb_get_skipped_counter): New. * g10/keylist.c (list_all): Print count of skipped keys. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
60e21d8b85
commit
2ca90f78ce
6 changed files with 29 additions and 5 deletions
11
g10/keydb.c
11
g10/keydb.c
|
@ -67,6 +67,7 @@ struct keydb_handle
|
|||
{
|
||||
int locked;
|
||||
int found;
|
||||
unsigned long skipped_long_blobs;
|
||||
int current;
|
||||
int used; /* Number of items in ACTIVE. */
|
||||
struct resource_item active[MAX_KEYDB_RESOURCES];
|
||||
|
@ -1289,6 +1290,13 @@ keydb_rebuild_caches (int noisy)
|
|||
}
|
||||
|
||||
|
||||
/* Return the number of skipped blocks since the last search reset. */
|
||||
unsigned long
|
||||
keydb_get_skipped_counter (KEYDB_HANDLE hd)
|
||||
{
|
||||
return hd ? hd->skipped_long_blobs : 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Start the next search on this handle right at the beginning
|
||||
|
@ -1307,6 +1315,7 @@ keydb_search_reset (KEYDB_HANDLE hd)
|
|||
if (DBG_CLOCK)
|
||||
log_clock ("keydb_search_reset");
|
||||
|
||||
hd->skipped_long_blobs = 0;
|
||||
hd->current = 0;
|
||||
hd->found = -1;
|
||||
/* Now reset all resources. */
|
||||
|
@ -1424,7 +1433,7 @@ keydb_search (KEYDB_HANDLE hd, KEYDB_SEARCH_DESC *desc,
|
|||
break;
|
||||
case KEYDB_RESOURCE_TYPE_KEYBOX:
|
||||
rc = keybox_search (hd->active[hd->current].u.kb, desc,
|
||||
ndesc, descindex);
|
||||
ndesc, descindex, &hd->skipped_long_blobs);
|
||||
break;
|
||||
}
|
||||
if (rc == -1 || gpg_err_code (rc) == GPG_ERR_EOF)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue