mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-08-05 08:10:15 +02:00
maint: always free a buffer, to avoid even semblance of a leak
* src/tac.c (main): Free the input buffer in most cases.
This commit is contained in:
@@ -633,6 +633,7 @@ main (int argc, char **argv)
|
|||||||
if (! (read_size < half_buffer_size && half_buffer_size < G_buffer_size))
|
if (! (read_size < half_buffer_size && half_buffer_size < G_buffer_size))
|
||||||
xalloc_die ();
|
xalloc_die ();
|
||||||
G_buffer = xmalloc (G_buffer_size);
|
G_buffer = xmalloc (G_buffer_size);
|
||||||
|
void *buf = G_buffer;
|
||||||
if (sentinel_length)
|
if (sentinel_length)
|
||||||
{
|
{
|
||||||
strcpy (G_buffer, separator);
|
strcpy (G_buffer, separator);
|
||||||
@@ -661,6 +662,10 @@ main (int argc, char **argv)
|
|||||||
output ((char *) NULL, (char *) NULL);
|
output ((char *) NULL, (char *) NULL);
|
||||||
|
|
||||||
if (have_read_stdin && close (STDIN_FILENO) < 0)
|
if (have_read_stdin && close (STDIN_FILENO) < 0)
|
||||||
error (EXIT_FAILURE, errno, "-");
|
{
|
||||||
|
error (0, errno, "-");
|
||||||
|
ok = false;
|
||||||
|
}
|
||||||
|
free (buf);
|
||||||
exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
|
exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user