Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2bdf75a authored by Riccardo Mancini's avatar Riccardo Mancini Committed by Greg Kroah-Hartman
Browse files

perf lzma: Close lzma stream on exit



[ Upstream commit f8cbb0f926ae1e1fb5f9e51614e5437560ed4039 ]

ASan reports memory leaks when running:

  # perf test "88: Check open filename arg using perf trace + vfs_getname"

One of these is caused by the lzma stream never being closed inside
lzma_decompress_to_file().

This patch adds the missing lzma_end().

Signed-off-by: default avatarRiccardo Mancini <rickyman7@gmail.com>
Fixes: 80a32e5b ("perf tools: Add lzma decompression support for kernel module")
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lore.kernel.org/lkml/aaf50bdce7afe996cfc06e1bbb36e4a2a9b9db93.1626343282.git.rickyman7@gmail.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent bd1a4106
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ int lzma_decompress_to_file(const char *input, int output_fd)

			if (ferror(infile)) {
				pr_err("lzma: read error: %s\n", strerror(errno));
				goto err_fclose;
				goto err_lzma_end;
			}

			if (feof(infile))
@@ -75,7 +75,7 @@ int lzma_decompress_to_file(const char *input, int output_fd)

			if (writen(output_fd, buf_out, write_size) != write_size) {
				pr_err("lzma: write error: %s\n", strerror(errno));
				goto err_fclose;
				goto err_lzma_end;
			}

			strm.next_out  = buf_out;
@@ -87,11 +87,13 @@ int lzma_decompress_to_file(const char *input, int output_fd)
				break;

			pr_err("lzma: failed %s\n", lzma_strerror(ret));
			goto err_fclose;
			goto err_lzma_end;
		}
	}

	err = 0;
err_lzma_end:
	lzma_end(&strm);
err_fclose:
	fclose(infile);
	return err;