# HG changeset patch # User Mikael Berthe # Date 1166043943 -3600 # Node ID 265e1d873d3e45dbf189f6d0308ee5372b4f1e8a # Parent 38297271220842cc81e1867c40d20556e3910534 PGP: Improve checks for missing keys diff -r 382972712208 -r 265e1d873d3e mcabber/src/pgp.c --- a/mcabber/src/pgp.c Wed Dec 13 21:51:51 2006 +0100 +++ b/mcabber/src/pgp.c Wed Dec 13 22:05:43 2006 +0100 @@ -221,7 +221,7 @@ if (vr && vr->signatures) { char *r = vr->signatures->fpr; // Found the fingerprint. Let's try to get the key id. - if(!gpgme_get_key(ctx, r, &key, 0)) { + if (!gpgme_get_key(ctx, r, &key, 0) && key) { r = key->subkeys->keyid; gpgme_key_release(key); } @@ -278,7 +278,7 @@ gpgme_set_passphrase_cb(ctx, passphrase_cb, 0); err = gpgme_get_key(ctx, gpg.private_key, &key, 1); - if (err) { + if (err || !key) { scr_LogPrint(LPRINT_LOGNORM, "GPGME error: private key not found"); gpgme_release(ctx); return NULL; @@ -404,7 +404,7 @@ gpgme_set_armor(ctx, 1); err = gpgme_get_key(ctx, keyid, &key, 0); - if (!err) { + if (!err && key) { gpgme_key_t keys[] = { key, 0 }; err = gpgme_data_new_from_mem(&in, gpg_data, strlen(gpg_data), 0); if (!err) {