aboutsummaryrefslogtreecommitdiffstats
path: root/agent/pkdecrypt.c
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2024-04-25 04:51:47 +0000
committerNIIBE Yutaka <[email protected]>2024-04-25 04:51:47 +0000
commit02b056ef777c09acf13eb7706af23053e32e7b04 (patch)
tree1b174d7714eb3f7e7596b3e796c91e12767870e1 /agent/pkdecrypt.c
parentagent: Allow NULL for R_PADDING, when calling scd and tpm2d. (diff)
downloadgnupg-02b056ef777c09acf13eb7706af23053e32e7b04.tar.gz
gnupg-02b056ef777c09acf13eb7706af23053e32e7b04.zip
agent:kem: Fix memory leaks.
* agent/pkdecrypt.c (composite_pgp_kem_decrypt): Release shadow_info memory. -- Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to '')
-rw-r--r--agent/pkdecrypt.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/agent/pkdecrypt.c b/agent/pkdecrypt.c
index cfb268190..6e466154d 100644
--- a/agent/pkdecrypt.c
+++ b/agent/pkdecrypt.c
@@ -408,7 +408,8 @@ composite_pgp_kem_decrypt (ctrl_t ctrl, const char *desc_text,
{
gcry_sexp_t s_skey0 = NULL;
gcry_sexp_t s_skey1 = NULL;
- unsigned char *shadow_info = NULL;
+ unsigned char *shadow_info0 = NULL;
+ unsigned char *shadow_info1 = NULL;
gpg_error_t err = 0;
unsigned int nbits;
@@ -444,7 +445,7 @@ composite_pgp_kem_decrypt (ctrl_t ctrl, const char *desc_text,
gcry_buffer_t fixed_info = { 0, 0, 0, NULL };
err = agent_key_from_file (ctrl, NULL, desc_text,
- ctrl->keygrip, &shadow_info,
+ ctrl->keygrip, &shadow_info0,
CACHE_MODE_NORMAL, NULL, &s_skey0, NULL, NULL);
if (err)
{
@@ -453,7 +454,7 @@ composite_pgp_kem_decrypt (ctrl_t ctrl, const char *desc_text,
}
err = agent_key_from_file (ctrl, NULL, desc_text,
- ctrl->keygrip1, &shadow_info,
+ ctrl->keygrip1, &shadow_info1,
CACHE_MODE_NORMAL, NULL, &s_skey1, NULL, NULL);
if (err)
{
@@ -620,6 +621,8 @@ composite_pgp_kem_decrypt (ctrl_t ctrl, const char *desc_text,
gcry_free (fixed_info.data);
gcry_sexp_release (s_skey0);
gcry_sexp_release (s_skey1);
+ xfree (shadow_info0);
+ xfree (shadow_info1);
return err;
}