aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog4
-rw-r--r--src/gpgme-tool.c19
2 files changed, 16 insertions, 7 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 8c423df0..73588ab0 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,9 @@
2010-08-03 Marcus Brinkmann <[email protected]>
+ * gpgme-tool.c (result_encrypt_to_xml, result_sign_to_xml)
+ (result_verify_to_xml, result_import_to_xml)
+ (result_genkey_to_xml): Check vigorously for null pointers.
+
* w32-io.c (GPGCEDEV_IOCTL_ASSIGN_RVID): New macro.
(_gpgme_io_spawn): Use ASSIGN_RVID.
diff --git a/src/gpgme-tool.c b/src/gpgme-tool.c
index 66720506..b1b2ab3e 100644
--- a/src/gpgme-tool.c
+++ b/src/gpgme-tool.c
@@ -742,8 +742,8 @@ result_add_fpr (struct result_xml_state *state, char *name, char *fpr)
gpg_error_t
result_add_timestamp (struct result_xml_state *state, char *name,
unsigned int timestamp)
-{
- char code[20];
+{
+ code[20];
snprintf (code, sizeof (code) - 1, "%ui", timestamp);
result_xml_tag_start (state, name, "unix", code, NULL);
@@ -828,7 +828,8 @@ result_encrypt_to_xml (gpgme_ctx_t ctx, int indent,
while (inv_recp)
{
result_xml_tag_start (&state, "invalid-key", NULL);
- result_add_fpr (&state, "fpr", inv_recp->fpr);
+ if (inv_recp->fpr)
+ result_add_fpr (&state, "fpr", inv_recp->fpr);
result_add_error (&state, "reason", inv_recp->reason);
result_xml_tag_end (&state);
inv_recp = inv_recp->next;
@@ -917,7 +918,8 @@ result_sign_to_xml (gpgme_ctx_t ctx, int indent,
while (inv_key)
{
result_xml_tag_start (&state, "invalid-key", NULL);
- result_add_fpr (&state, "fpr", inv_key->fpr);
+ if (inv_key->fpr)
+ result_add_fpr (&state, "fpr", inv_key->fpr);
result_add_error (&state, "reason", inv_key->reason);
result_xml_tag_end (&state);
inv_key = inv_key->next;
@@ -985,7 +987,8 @@ result_verify_to_xml (gpgme_ctx_t ctx, int indent,
/* FIXME: Could be done better. */
result_add_value (&state, "summary", sig->summary);
- result_add_fpr (&state, "fpr", sig->fpr);
+ if (sig->fpr)
+ result_add_fpr (&state, "fpr", sig->fpr);
result_add_error (&state, "status", sig->status);
/* FIXME: notations */
result_add_timestamp (&state, "timestamp", sig->timestamp);
@@ -1050,7 +1053,8 @@ result_import_to_xml (gpgme_ctx_t ctx, int indent,
{
result_xml_tag_start (&state, "import-status", NULL);
- result_add_fpr (&state, "fpr", stat->fpr);
+ if (stat->fpr)
+ result_add_fpr (&state, "fpr", stat->fpr);
result_add_error (&state, "result", stat->result);
/* FIXME: Could be done better. */
result_add_value (&state, "status", stat->status);
@@ -1082,7 +1086,8 @@ result_genkey_to_xml (gpgme_ctx_t ctx, int indent,
result_add_value (&state, "primary", res->primary);
result_add_value (&state, "sub", res->sub);
- result_add_fpr (&state, "fpr", res->fpr);
+ if (res->fpr)
+ result_add_fpr (&state, "fpr", res->fpr);
result_xml_tag_end (&state);