diff options
author | Ingo Klöcker <[email protected]> | 2021-12-22 11:13:23 +0000 |
---|---|---|
committer | Ingo Klöcker <[email protected]> | 2021-12-22 14:25:42 +0000 |
commit | 305d8668ca724982c50fe4e05315c48a20cc33e5 (patch) | |
tree | a5dcd47b072d7934f3aa01631ed64083729e9e2d /tests/gpg/t-import.c | |
parent | build: Update for newer autoconf. (diff) | |
download | gpgme-305d8668ca724982c50fe4e05315c48a20cc33e5.tar.gz gpgme-305d8668ca724982c50fe4e05315c48a20cc33e5.zip |
core: Detect bad passphrase error on certificate import
* src/import.c (gpgme_op_import_result): Check fpr for NULL.
(parse_error): New.
(import_status_handler): Handle error status line.
* doc/gpgme.texi (gpgme_import_status_t): Mention that fpr can be NULL.
* tests/gpg/t-import.c (check_result): Check fpr for NULL.
* tests/run-threaded.c (delete_impres): Check fpr for NULL.
--
When importing an encrypted certificate a wrong passphrase may be
entered. In this case gpgsm emits a status line with a bad passphrase
error and an "invalid object" error. To make it possible for callers
to handle a wrong passphrase error more gracefully, an import status
with bad passphrase error is added to the import result for each
status line with bad passphrase error.
GnuPG-bug-id: 5713
Diffstat (limited to 'tests/gpg/t-import.c')
-rw-r--r-- | tests/gpg/t-import.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/tests/gpg/t-import.c b/tests/gpg/t-import.c index 159e5652..1f7fdbc3 100644 --- a/tests/gpg/t-import.c +++ b/tests/gpg/t-import.c @@ -149,16 +149,17 @@ check_result (gpgme_import_result_t result, const char *fpr, int secret) exit (1); } } - if (strcmp (fpr, result->imports->fpr)) + if (!result->imports->fpr || strcmp (fpr, result->imports->fpr)) { fprintf (stderr, "Unexpected fingerprint %s\n", - result->imports->fpr); + result->imports->fpr ? result->imports->fpr : "null"); exit (1); } - if (result->imports->next && strcmp (fpr, result->imports->next->fpr)) + if (result->imports->next + && (!result->imports->next->fpr || strcmp (fpr, result->imports->next->fpr))) { fprintf (stderr, "Unexpected fingerprint on second status %s\n", - result->imports->next->fpr); + result->imports->next->fpr ? result->imports->next->fpr : "null"); exit (1); } if (result->imports->result != 0) |