talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 308f9937247ca6ca0dc2ef554080705976a93a95
parent 864fd8e5fe8be79f565c9234ceb1ac3d43054309
Author: Ricardo Mones <ricardo@mones.org>
Date:   Sat, 12 Apr 2014 14:14:09 +0200

Fix bug #3138 “pgpinline crashes on signature check if gppme fails to init”

Diffstat:
Msrc/plugins/pgpinline/pgpinline.c | 22+++++++++++++---------
Msrc/plugins/pgpmime/pgpmime.c | 23+++++++++++++----------
2 files changed, 26 insertions(+), 19 deletions(-)

diff --git a/src/plugins/pgpinline/pgpinline.c b/src/plugins/pgpinline/pgpinline.c @@ -1,6 +1,6 @@ /* * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client - * Copyright (C) 1999-2012 Colin Leroy <colin@colino.net> and + * Copyright (C) 1999-2014 Colin Leroy <colin@colino.net> and * the Claws Mail team * * This program is free software; you can redistribute it and/or modify @@ -137,8 +137,10 @@ static gboolean pgpinline_is_signed(MimeInfo *mimeinfo) data = pgpinline_new_privacydata(); mimeinfo->privacy = (PrivacyData *) data; } - data->done_sigtest = TRUE; - data->is_signed = TRUE; + if (data != NULL) { + data->done_sigtest = TRUE; + data->is_signed = TRUE; + } return TRUE; } @@ -449,12 +451,14 @@ static MimeInfo *pgpinline_decrypt(MimeInfo *mimeinfo) data = pgpinline_new_privacydata(); decinfo->privacy = (PrivacyData *) data; } - data->done_sigtest = TRUE; - data->is_signed = TRUE; - data->sigstatus = sigstat; - if (data->ctx) - gpgme_release(data->ctx); - data->ctx = ctx; + if (data != NULL) { + data->done_sigtest = TRUE; + data->is_signed = TRUE; + data->sigstatus = sigstat; + if (data->ctx) + gpgme_release(data->ctx); + data->ctx = ctx; + } } else gpgme_release(ctx); diff --git a/src/plugins/pgpmime/pgpmime.c b/src/plugins/pgpmime/pgpmime.c @@ -1,6 +1,6 @@ /* * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client - * Copyright (C) 1999-2012 the Claws Mail team + * Copyright (C) 1999-2014 the Claws Mail team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -128,9 +128,10 @@ static gboolean pgpmime_is_signed(MimeInfo *mimeinfo) data = pgpmime_new_privacydata(); mimeinfo->privacy = (PrivacyData *) data; } - - data->done_sigtest = TRUE; - data->is_signed = TRUE; + if (data != NULL) { + data->done_sigtest = TRUE; + data->is_signed = TRUE; + } return TRUE; } @@ -421,12 +422,14 @@ static MimeInfo *pgpmime_decrypt(MimeInfo *mimeinfo) data = pgpmime_new_privacydata(); decinfo->privacy = (PrivacyData *) data; } - data->done_sigtest = TRUE; - data->is_signed = TRUE; - data->sigstatus = sigstat; - if (data->ctx) - gpgme_release(data->ctx); - data->ctx = ctx; + if (data != NULL) { + data->done_sigtest = TRUE; + data->is_signed = TRUE; + data->sigstatus = sigstat; + if (data->ctx) + gpgme_release(data->ctx); + data->ctx = ctx; + } } else gpgme_release(ctx);