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:
parent
1587b387c0
commit
29bc14f56f
@ -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 ();
|
||||
|
@ -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");
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user