tools: Fix memory leaks.

* tools/gpgsplit.c (write_part): Free BLOB on error.

--

GnuPG-bug-id: 5393
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
This commit is contained in:
Jakub Jelen 2021-04-13 14:26:15 +09:00 committed by NIIBE Yutaka
parent 7cbe29c4fb
commit 4c8be54cc4
1 changed files with 16 additions and 4 deletions

View File

@ -582,7 +582,10 @@ write_part (FILE *fpin, unsigned long pktlen,
{
c = getc (fpin);
if (c == EOF)
goto read_error;
{
xfree (blob);
goto read_error;
}
blob[i] = c;
}
len = public_key_length (blob, pktlen);
@ -594,18 +597,27 @@ write_part (FILE *fpin, unsigned long pktlen,
if ( (hdr[0] & 0x40) )
{
if (write_new_header (fpout, pkttype, len))
goto write_error;
{
xfree (blob);
goto write_error;
}
}
else
{
if (write_old_header (fpout, pkttype, len))
goto write_error;
{
xfree (blob);
goto write_error;
}
}
for (i=0; i < len; i++)
{
if ( putc (blob[i], fpout) == EOF )
goto write_error;
{
xfree (blob);
goto write_error;
}
}
goto ready;