diff options
| author | Werner Koch <[email protected]> | 2019-02-07 15:28:03 +0000 |
|---|---|---|
| committer | Werner Koch <[email protected]> | 2019-02-07 15:28:03 +0000 |
| commit | df6ba6dfd235fddb7645bc16573da1a6a7e6b49d (patch) | |
| tree | 7dbba1063aabe8e99539a476a0a6342b20c3ec8d /tools/card-tool-keys.c | |
| parent | scd: Store a new PIV public key in the certificate DO. (diff) | |
| download | gnupg-df6ba6dfd235fddb7645bc16573da1a6a7e6b49d.tar.gz gnupg-df6ba6dfd235fddb7645bc16573da1a6a7e6b49d.zip | |
card: Fix a NULL-ptr deref in key listings.
* tools/card-tool-keys.c (get_matching_keys): Fix segv.
* tools/gpg-card-tool.c (main): Init info.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'tools/card-tool-keys.c')
| -rw-r--r-- | tools/card-tool-keys.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/tools/card-tool-keys.c b/tools/card-tool-keys.c index e9edf9818..4e057ad94 100644 --- a/tools/card-tool-keys.c +++ b/tools/card-tool-keys.c @@ -214,9 +214,12 @@ get_matching_keys (const unsigned char *keygrip, int protocol, err = get_matching_keys (keygrip, GNUPG_PROTOCOL_OPENPGP, &kb); if (!err || gpg_err_code (err) == GPG_ERR_NO_PUBKEY) { - *keyblock_tail = kb; - keyblock_tail = &kb->next; - kb = NULL; + if (!err) + { + *keyblock_tail = kb; + keyblock_tail = &kb->next; + kb = NULL; + } err = get_matching_keys (keygrip, GNUPG_PROTOCOL_CMS, &kb); if (!err) { |
