summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.cpp
diff options
context:
space:
mode:
authorAdrian McCarthy <amccarth@google.com>2015-12-09 00:29:38 +0000
committerAdrian McCarthy <amccarth@google.com>2015-12-09 00:29:38 +0000
commit278a6c952b3276e7db61f578ab66f067064cad36 (patch)
treeaa1d8589c9ae7db3dfcc262ef8112311ef8fb0ef /lldb/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.cpp
parent000bf49cec9c9a6da19410f5146087325d609d10 (diff)
downloadbcm5719-llvm-278a6c952b3276e7db61f578ab66f067064cad36.tar.gz
bcm5719-llvm-278a6c952b3276e7db61f578ab66f067064cad36.zip
Fix DoReadMemory for Windows mini dumps.
Differential Revision: http://reviews.llvm.org/D15359 llvm-svn: 255083
Diffstat (limited to 'lldb/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.cpp')
-rw-r--r--lldb/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/lldb/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.cpp b/lldb/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.cpp
index ca41dac73b8..fbc96f085ed 100644
--- a/lldb/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.cpp
+++ b/lldb/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.cpp
@@ -30,6 +30,7 @@
#include "lldb/Target/StopInfo.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/UnixSignals.h"
+#include "lldb/Utility/LLDBAssert.h"
#include "llvm/Support/ConvertUTF.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/raw_ostream.h"
@@ -267,7 +268,9 @@ ProcessWinMiniDump::DoReadMemory(lldb::addr_t addr, void *buf, size_t size, Erro
// There's at least some overlap between the beginning of the desired range
// (addr) and the current range. Figure out where the overlap begins and
// how much overlap there is, then copy it to the destination buffer.
- const size_t offset = range.start - addr;
+ lldbassert(range.start <= addr);
+ const size_t offset = addr - range.start;
+ lldbassert(offset < range.size);
const size_t overlap = std::min(size, range.size - offset);
std::memcpy(buf, range.ptr + offset, overlap);
return overlap;
OpenPOWER on IntegriCloud