aboutsummaryrefslogtreecommitdiffstats
path: root/tests/gpg/t-import.c
diff options
context:
space:
mode:
authorIngo Klöcker <[email protected]>2021-12-22 11:13:23 +0000
committerIngo Klöcker <[email protected]>2021-12-22 14:25:42 +0000
commit305d8668ca724982c50fe4e05315c48a20cc33e5 (patch)
treea5dcd47b072d7934f3aa01631ed64083729e9e2d /tests/gpg/t-import.c
parentbuild: Update for newer autoconf. (diff)
downloadgpgme-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.c9
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)