Mercurial > hg
changeset 2195:40ddaebeb81e
PGP: Add a memory allocation check and compilation directives
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Wed, 07 Oct 2015 21:55:51 +0200 |
parents | f4c00c72b27d |
children | 8811fe9d6ef0 |
files | mcabber/mcabber/pgp.c mcabber/mcabber/xmpp.c |
diffstat | 2 files changed, 11 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/mcabber/pgp.c Tue Oct 06 21:16:41 2015 +0200 +++ b/mcabber/mcabber/pgp.c Wed Oct 07 21:55:51 2015 +0200 @@ -420,6 +420,10 @@ gpgme_set_armor(ctx, 1); keys = g_new0(gpgme_key_t, 1+nkeys); + if (!keys) { + gpgme_release(ctx); + return NULL; + } for (i = 0; i < nkeys; i++) { err = gpgme_get_key(ctx, keyids[i], &keys[i], 0);
--- a/mcabber/mcabber/xmpp.c Tue Oct 06 21:16:41 2015 +0200 +++ b/mcabber/mcabber/xmpp.c Wed Oct 07 21:55:51 2015 +0200 @@ -385,10 +385,8 @@ if (key) { int nkeys = 1; const char *keys[] = { key, 0 }; - if (carbons_enabled()) { - keys[1] = gpg_get_private_key_id(); - nkeys++; - } + if (carbons_enabled()) + keys[nkeys++] = gpg_get_private_key_id(); enc = gpg_encrypt(text, keys, nkeys); } if (!enc && force) { @@ -1141,8 +1139,10 @@ scr_LogPrint(LPRINT_DEBUG, "Received incoming carbon from <%s>", from); } else if (!g_strcmp0(carbon_name, "sent")) { +#ifdef HAVE_GPGME + char *decrypted_pgp = NULL; +#endif guint encrypted = 0; - char *decrypted_pgp = NULL; const char *to= lm_message_node_get_attribute(x, "to"); if (!to) { scr_LogPrint(LPRINT_LOGNORM, "Malformed carbon copy!"); @@ -1174,7 +1174,9 @@ hk_message_out(bjid, NULL, timestamp, body, encrypted, TRUE, NULL); scr_LogPrint(LPRINT_DEBUG, "Received outgoing carbon for <%s>", to); +#ifdef HAVE_GPGME g_free(decrypted_pgp); +#endif goto handle_messages_return; } } else { // Not a Carbon