aboutsummaryrefslogtreecommitdiffstats
path: root/sm/call-agent.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2002-02-07 18:43:22 +0000
committerWerner Koch <[email protected]>2002-02-07 18:43:22 +0000
commit2a28f5d0aece3300dea950b6f9bed9dbc1f01fa7 (patch)
tree5ca0c73c6b9289476447ed726b0bd8b1ec6b355c /sm/call-agent.c
parent* decrypt.c (gpgsm_decrypt): Bail out after an decryption error. (diff)
downloadgnupg-2a28f5d0aece3300dea950b6f9bed9dbc1f01fa7.tar.gz
gnupg-2a28f5d0aece3300dea950b6f9bed9dbc1f01fa7.zip
* certlist.c (gpgsm_add_to_certlist): Check that the specified
name identifies a certificate unambiguously. (gpgsm_find_cert): Ditto. * server.c (cmd_listkeys): Check that the data stream is available. (cmd_listsecretkeys): Ditto. (has_option): New. (cmd_sign): Fix ambiguousity in option recognition. * gpgsm.c (main): Enable --logger-fd. * encrypt.c (gpgsm_encrypt): Increased buffer size for better performance. * call-agent.c (gpgsm_agent_pksign): Check the S-Exp received from the agent. * keylist.c (list_cert_colon): Filter out control characters.
Diffstat (limited to 'sm/call-agent.c')
-rw-r--r--sm/call-agent.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sm/call-agent.c b/sm/call-agent.c
index ec294f6d6..4d7ffbcba 100644
--- a/sm/call-agent.c
+++ b/sm/call-agent.c
@@ -273,7 +273,11 @@ gpgsm_agent_pksign (const char *keygrip,
}
*r_buf = get_membuf (&data, r_buflen);
- /* FIXME: check that the returned S-Exp is valid! */
+ if (!gcry_sexp_canon_len (*r_buf, *r_buflen, NULL, NULL))
+ {
+ xfree (*r_buf); *r_buf = NULL;
+ return GNUPG_Invalid_Value;
+ }
return *r_buf? 0 : GNUPG_Out_Of_Core;
}