diff options
Diffstat (limited to 'src/processor/module_comparer.cc')
-rw-r--r-- | src/processor/module_comparer.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/processor/module_comparer.cc b/src/processor/module_comparer.cc index ba561eea..025ab883 100644 --- a/src/processor/module_comparer.cc +++ b/src/processor/module_comparer.cc @@ -58,8 +58,10 @@ bool ModuleComparer::Compare(const string &symbol_data) { // Load symbol data into basic_module scoped_array<char> buffer(new char[symbol_data.size() + 1]); - strcpy(buffer.get(), symbol_data.c_str()); - ASSERT_TRUE(basic_module->LoadMapFromMemory(buffer.get())); + memcpy(buffer.get(), symbol_data.c_str(), symbol_data.size()); + buffer.get()[symbol_data.size()] = '\0'; + ASSERT_TRUE(basic_module->LoadMapFromMemory(buffer.get(), + symbol_data.size() + 1)); buffer.reset(); // Serialize BasicSourceLineResolver::Module. @@ -70,7 +72,9 @@ bool ModuleComparer::Compare(const string &symbol_data) { BPLOG(INFO) << "Serialized size = " << serialized_size << " Bytes"; // Load FastSourceLineResolver::Module using serialized data. - ASSERT_TRUE(fast_module->LoadMapFromMemory(serialized_data.get())); + ASSERT_TRUE(fast_module->LoadMapFromMemory(serialized_data.get(), + serialized_size)); + ASSERT_TRUE(fast_module->IsCorrupt() == basic_module->IsCorrupt()); // Compare FastSourceLineResolver::Module with // BasicSourceLineResolver::Module. |