changeset 1105:265e1d873d3e

PGP: Improve checks for missing keys
author Mikael Berthe <mikael@lilotux.net>
date Wed, 13 Dec 2006 22:05:43 +0100
parents 382972712208
children 8e12137fab20
files mcabber/src/pgp.c
diffstat 1 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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) {