aboutsummaryrefslogtreecommitdiffstats
path: root/g10/pkglue.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2021-05-11 07:04:19 +0000
committerWerner Koch <[email protected]>2021-05-11 07:06:34 +0000
commit965bb0693c0df04e6dbd57a8b471944367cf6c4e (patch)
tree3d038894faf6e52c451d2a58cccfca0766b2b2be /g10/pkglue.c
parentgpg: Fix allocation for EXTRAHASH. (diff)
downloadgnupg-965bb0693c0df04e6dbd57a8b471944367cf6c4e.tar.gz
gnupg-965bb0693c0df04e6dbd57a8b471944367cf6c4e.zip
A few minor code cleanups and typo fixes.
* agent/command-ssh.c (ssh_handler_request_identities): Remove double check of ERR. * g10/getkey.c (get_pubkey_byname): Remove double use of break. * g10/pkglue.c (pk_encrypt): Handle possible NULL-ptr access due to failed malloc. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'g10/pkglue.c')
-rw-r--r--g10/pkglue.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/g10/pkglue.c b/g10/pkglue.c
index cab007f01..1e0191e12 100644
--- a/g10/pkglue.c
+++ b/g10/pkglue.c
@@ -424,6 +424,11 @@ pk_encrypt (pubkey_algo_t algo, gcry_mpi_t *resarr, gcry_mpi_t data,
/* Get the shared point and the ephemeral public key. */
shared = get_data_from_sexp (s_ciph, "s", &nshared);
+ if (!shared)
+ {
+ rc = gpg_error_from_syserror ();
+ goto leave;
+ }
rc = sexp_extract_param_sos (s_ciph, "e", &public);
gcry_sexp_release (s_ciph);
s_ciph = NULL;
@@ -464,6 +469,7 @@ pk_encrypt (pubkey_algo_t algo, gcry_mpi_t *resarr, gcry_mpi_t data,
resarr[1] = get_mpi_from_sexp (s_ciph, "b", GCRYMPI_FMT_USG);
}
+ leave:
gcry_sexp_release (s_ciph);
return rc;
}