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:
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);