1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-06-11 18:01:03 +02:00

gpgsm,tests,tools: Fix memory leaks.

* sm/minip12.c (p12_parse): Fix creating new TLV with old TLV.
* sm/t-minip12.c (one_file): Release RESULT.
* tests/gpgscm/ffi.c (do_process_wait): Call gpgrt_process_release.
* tools/gpgconf-comp.c (retrieve_options_from_program): Release PARGS.
* tools/gpgtar-extract.c (gpgtar_extract): Release PROC on leave.
* tools/gpgtar-list.c (gpgtar_list): Release PROC on leave.

--

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
NIIBE Yutaka 2025-05-28 15:50:10 +09:00
parent 1587b387c0
commit 29bc14f56f
No known key found for this signature in database
GPG Key ID: 640114AF89DE6054
6 changed files with 23 additions and 8 deletions

View File

@ -2027,7 +2027,7 @@ p12_parse (const unsigned char *buffer, size_t length, const char *pw,
if ((err = tlv_expect_octet_string (tlv, &data, &datalen)))
goto bailout;
tmptlv = tlv_parser_new (data, datalen, opt_verbose, NULL);
tmptlv = tlv_parser_new (data, datalen, opt_verbose, tlv);
if (!tmptlv)
{
err = gpg_error_from_syserror ();

View File

@ -433,7 +433,8 @@ one_file (const char *name, const char *pass)
gcry_free (tmpbuf);
}
}
}
p12_parse_free_kparms (result);
}
if (badpass)
log_error ("Bad password given?\n");

View File

@ -1222,12 +1222,23 @@ do_process_wait (scheme *sc, pointer args)
FFI_ARG_OR_RETURN (sc, struct proc_object_box *, box, proc, args);
FFI_ARG_OR_RETURN (sc, int, hang, bool, args);
FFI_ARGS_DONE_OR_RETURN (sc, args);
err = gpgrt_process_wait (box->proc, hang);
if (!err)
err = gpgrt_process_ctl (box->proc, GPGRT_PROCESS_GET_EXIT_ID, &retcode);
if (err == GPG_ERR_TIMEOUT)
err = 0;
if (!box->proc)
{
if (verbose)
fprintf (stderr, "caught already (%p)\n", box);
}
else
{
err = gpgrt_process_wait (box->proc, hang);
if (!err)
{
err = gpgrt_process_ctl (box->proc, GPGRT_PROCESS_GET_EXIT_ID, &retcode);
gpgrt_process_release (box->proc);
box->proc = NULL;
}
if (err == GPG_ERR_TIMEOUT)
err = 0;
}
FFI_RETURN_INT (sc, retcode);
}

View File

@ -2162,6 +2162,7 @@ retrieve_options_from_program (gc_component_id_t component, int only_installed)
}
}
gpgrt_argparse (NULL, &pargs, NULL); /* Release internal state. */
xfree (line);
xfree (twopartconfig_name);
}

View File

@ -559,6 +559,7 @@ gpgtar_extract (const char *filename, int decrypt)
}
leave:
gpgrt_process_release (proc);
notextracted = tarinfo->skipped_badname;
notextracted += tarinfo->skipped_suspicious;
notextracted += tarinfo->skipped_symlinks;

View File

@ -593,6 +593,7 @@ gpgtar_list (const char *filename, int decrypt)
}
leave:
gpgrt_process_release (proc);
free_strlist (extheader);
xfree (header);
if (stream != es_stdin)