aboutsummaryrefslogtreecommitdiff
path: root/src/processor/module_comparer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/processor/module_comparer.cc')
-rw-r--r--src/processor/module_comparer.cc10
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.