Bug 1456147 - do not fail on an assertion error when calling Pickle::ExtractBuffers on an empty iterator; r?jld
MozReview-Commit-ID: 7m2QSOuxLOw
--- a/ipc/chromium/src/base/pickle.cc
+++ b/ipc/chromium/src/base/pickle.cc
@@ -415,17 +415,17 @@ bool Pickle::ReadWString(PickleIterator*
bool Pickle::ExtractBuffers(PickleIterator* iter, size_t length, BufferList* buffers,
uint32_t alignment) const
{
DCHECK(iter);
DCHECK(buffers);
DCHECK(alignment == 4 || alignment == 8);
DCHECK(intptr_t(header_) % alignment == 0);
- if (AlignInt(length) < length) {
+ if (AlignInt(length) < length || iter->iter_.Done()) {
return false;
}
uint32_t padding_len = intptr_t(iter->iter_.Data()) % alignment;
if (!iter->iter_.AdvanceAcrossSegments(buffers_, padding_len)) {
return false;
}