diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-04-20 22:00:02 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-04-20 22:00:02 +0200 |
commit | eee0a3848ac250920dc2710e0153991dbda319b6 (patch) | |
tree | d910b82954db8f8a8f3e073520a4ece706af49a2 /searchlib | |
parent | 329633d6aa9ccb97a2a4f2f754411b53c13b4da8 (diff) |
Add conservative asserts ensuring that we can properly map in files.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/docstore/randreaders.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/searchlib/src/vespa/searchlib/docstore/randreaders.cpp b/searchlib/src/vespa/searchlib/docstore/randreaders.cpp index f0d7a6b1dff..2d25efead56 100644 --- a/searchlib/src/vespa/searchlib/docstore/randreaders.cpp +++ b/searchlib/src/vespa/searchlib/docstore/randreaders.cpp @@ -76,8 +76,10 @@ NormalRandRead::NormalRandRead(const vespalib::string & fileName) FileRandRead::FSP MMapRandRead::read(size_t offset, vespalib::DataBuffer & buffer, size_t sz) { - const char *ptr = static_cast<const char *>(_file.MemoryMapPtr(offset)); - vespalib::DataBuffer(ptr, sz).swap(buffer); + const char *data = static_cast<const char *>(_file.MemoryMapPtr(offset)); + assert(data != nullptr); + assert(_file.MemoryMapPtr(offset+sz-1) != nullptr); + vespalib::DataBuffer(data, sz).swap(buffer); return FSP(); } @@ -114,13 +116,15 @@ MMapRandReadDynamic::read(size_t offset, vespalib::DataBuffer & buffer, size_t s { FSP file(_holder.get()); const char * data(static_cast<const char *>(file->MemoryMapPtr(offset))); - if ((data == NULL) || (file->MemoryMapPtr(offset+sz-1) == NULL)) { + if ((data == nullptr) || (file->MemoryMapPtr(offset+sz-1) == nullptr)) { // Must check that both start and end of file is mapped in. // Previous reopen could happend during a partial write of this buffer. // This should fix bug 4630695. reopen(); file = _holder.get(); data = static_cast<const char *>(file->MemoryMapPtr(offset)); + assert(data != nullptr); + assert(file->MemoryMapPtr(offset+sz-1) != nullptr); } vespalib::DataBuffer(data, sz).swap(buffer); return file; |