[PATCH] agent: fix two bugs
NIIBE Yutaka
gniibe at fsij.org
Fri Feb 22 05:03:10 CET 2013
This is a fix which I found during ECC card/token support.
(1) The length of keydata should not include trailing '\0'.
(2) Since ECDSA and ECDH has six elements, we need to allocate 7 (+1 for
trailing '\0').
I'll apply and push these changes to master.
diff --git a/agent/command.c b/agent/command.c
index 2844398..823b233 100644
--- a/agent/command.c
+++ b/agent/command.c
@@ -2197,6 +2197,7 @@ cmd_keytocard (assuan_context_t ctx, char *line)
gcry_sexp_sprint (s_skey, GCRYSEXP_FMT_CANON, keydata, keydatalen);
gcry_sexp_release (s_skey);
+ keydatalen--; /* Decrement for last '\0'. */
/* Add timestamp "created-at" in the private key */
timestamp = isotime2epoch (timestamp_str);
snprintf (keydata+keydatalen-1, 30, "(10:created-at10:%010lu))", timestamp);
diff --git a/agent/findkey.c b/agent/findkey.c
index b17870e..ebdcc03 100644
--- a/agent/findkey.c
+++ b/agent/findkey.c
@@ -828,7 +828,7 @@ agent_public_key_from_file (ctrl_t ctrl,
int i, idx;
gcry_sexp_t s_skey;
char algoname[6];
- char elems[6];
+ char elems[7];
gcry_sexp_t uri_sexp, comment_sexp;
const char *uri, *comment;
size_t uri_length, comment_length;
--
More information about the Gnupg-devel
mailing list