aboutsummaryrefslogtreecommitdiffstats
path: root/scd/app-dinsig.c
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2024-11-11 00:51:54 +0000
committerNIIBE Yutaka <[email protected]>2024-11-11 00:51:54 +0000
commitb1f2695d24a8ab341d71b8cf65351b7ceed16e1b (patch)
treecc7398682e3c88651fba3bddf3a4c646043eb2bd /scd/app-dinsig.c
parentgpg: Improve wording for only-pubkeys. (diff)
downloadgnupg-b1f2695d24a8ab341d71b8cf65351b7ceed16e1b.tar.gz
gnupg-b1f2695d24a8ab341d71b8cf65351b7ceed16e1b.zip
scd: Fix resource leaks on error paths.
* scd/app-dinsig.c (do_readcert): Don't return directly but care about releasing memory. * scd/app-nks.c (readcert_from_ef): Likewise. -- Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'scd/app-dinsig.c')
-rw-r--r--scd/app-dinsig.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/scd/app-dinsig.c b/scd/app-dinsig.c
index 990de3405..be3019ee1 100644
--- a/scd/app-dinsig.c
+++ b/scd/app-dinsig.c
@@ -226,7 +226,10 @@ do_readcert (app_t app, const char *certid,
else if ( class == CLASS_UNIVERSAL && tag == TAG_SET && constructed )
rootca = 1;
else
- return gpg_error (GPG_ERR_INV_OBJ);
+ {
+ err = gpg_error (GPG_ERR_INV_OBJ);
+ goto leave;
+ }
totobjlen = objlen + hdrlen;
log_assert (totobjlen <= buflen);