From 92f7039eec437cb507668f6d0d47d4c1ccd79374 Mon Sep 17 00:00:00 2001 From: sdong Date: Tue, 4 Aug 2015 10:36:08 -0700 Subject: [PATCH] fix memory corruption issue in sst_dump --show_compression_sizes Summary: In "sst_dump --show_compression_sizes", a reference of CompressionOptions is kept in TableBuilderOptions, which is destroyed later, causing a memory issue. Test Plan: Run valgrind against SSTDumpToolTest.CompressedSizes and make sure it is fixed Reviewers: IslamAbdelRahman, yhchiang, kradhakrishnan, rven Reviewed By: rven Subscribers: leveldb, dhruba Differential Revision: https://reviews.facebook.net/D43497 --- util/sst_dump_tool.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/util/sst_dump_tool.cc b/util/sst_dump_tool.cc index 0f135d841..453d0700a 100644 --- a/util/sst_dump_tool.cc +++ b/util/sst_dump_tool.cc @@ -167,8 +167,9 @@ int SstFileReader::ShowAllCompressionSizes(size_t block_size) { for (CompressionType i = CompressionType::kNoCompression; i != CompressionType::kLZ4HCCompression; i = CompressionType(i + 1)) { + CompressionOptions compress_opt; TableBuilderOptions tb_opts(imoptions, ikc, &block_based_table_factories, i, - CompressionOptions(), false); + compress_opt, false); uint64_t file_size = CalculateCompressedTableSize(tb_opts, block_size); fprintf(stdout, "Compression: %s", compress_type.find(i)->second); fprintf(stdout, " Size: %" PRIu64 "\n", file_size);