From: Pádraig Brady
Date: Fri, 4 Sep 2015 13:38:06 +0000 (+0100) Subject: maint: avoid "definitely lost" valgrind warnings X-Git-Tag: v8.25~150 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a4b640549df3216282f9d9924901b1521c3e2d69;p=thirdparty%2Fcoreutils.git maint: avoid "definitely lost" valgrind warnings Since commit v8.23-19-g8defcee, main() will return, rather than call exit(), this inducing "definitely lost" warnings in valgrind's leak checker. That precludes using the following to flag memory leaks: valgrind --leak-check=full --error-exitcode=1 \ --errors-for-leak-kinds=definite * src/pr.c (main): In dev builds, explicitly free memory allocated. * src/sort.c (main): Likewise. * src/tail.c (main): Likewise. * src/tsort.c (tsort): Likewise. --- diff --git a/src/pr.c b/src/pr.c index d79d84f186..887e125842 100644 --- a/src/pr.c +++ b/src/pr.c @@ -1130,6 +1130,7 @@ main (int argc, char **argv) } cleanup (); + IF_LINT (free (file_names)); if (have_read_stdin && fclose (stdin) == EOF) error (EXIT_FAILURE, errno, _("standard input")); diff --git a/src/sort.c b/src/sort.c index 85fc38f73d..a7eda8325a 100644 --- a/src/sort.c +++ b/src/sort.c @@ -4742,6 +4742,8 @@ main (int argc, char **argv) sort (files, nfiles, outfile, nthreads); } + IF_LINT (free (files)); + if (have_read_stdin && fclose (stdin) == EOF) die (_("close failed"), "-"); diff --git a/src/tail.c b/src/tail.c index c062d403ff..f916d74603 100644 --- a/src/tail.c +++ b/src/tail.c @@ -2354,6 +2354,8 @@ main (int argc, char **argv) tail_forever (F, n_files, sleep_interval); } + IF_LINT (free (F)); + if (have_read_stdin && close (STDIN_FILENO) < 0) error (EXIT_FAILURE, errno, "-"); return ok ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/src/tsort.c b/src/tsort.c index d4be03d427..0533451dad 100644 --- a/src/tsort.c +++ b/src/tsort.c @@ -528,6 +528,8 @@ tsort (const char *file) } } + IF_LINT (free (root)); + if (fclose (stdin) != 0) error (EXIT_FAILURE, errno, "%s", is_stdin ? _("standard input") : quote (file));