CDataStream::ignore Throw exception instead of assert on negative nSize.

Previously disk corruption would cause an assert instead of an exception.
This commit is contained in:
Patrick Strateman 2016-04-24 21:59:46 -07:00 committed by Pieter Wuille
parent 4f87af6fc7
commit 4bf631e5e4
1 changed files with 3 additions and 1 deletions

View File

@ -240,7 +240,9 @@ public:
CDataStream& ignore(int nSize) CDataStream& ignore(int nSize)
{ {
// Ignore from the beginning of the buffer // Ignore from the beginning of the buffer
assert(nSize >= 0); if (nSize < 0) {
throw std::ios_base::failure("CDataStream::ignore(): nSize negative");
}
unsigned int nReadPosNext = nReadPos + nSize; unsigned int nReadPosNext = nReadPos + nSize;
if (nReadPosNext >= vch.size()) if (nReadPosNext >= vch.size())
{ {