From 0c1a03000e29219ce754df8bb99781d1564bf41a Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Fri, 14 Sep 2018 15:00:08 +0200 Subject: swlaycache: trust the in-stream size, not the size of the stream It's allowed to have extra data at the end of the stream, which is to be ignored. --- msodumper/swlaycacherecord.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/msodumper/swlaycacherecord.py b/msodumper/swlaycacherecord.py index dac75e4..fc03421 100644 --- a/msodumper/swlaycacherecord.py +++ b/msodumper/swlaycacherecord.py @@ -14,13 +14,16 @@ class SwLayCacheStream(BinaryStream): def dump(self): print('' % self.size) - posOrig = self.pos header = Header(self) header.dump() - while posOrig + self.size > self.pos: - record = CacheRecord(self) - record.dump() + pos = self.pos + firstRecord = CacheRecord(self) + firstRecord.dump() + endPos = pos + firstRecord.nSize + + while endPos > self.pos: + CacheRecord(self).dump() print('') -- cgit v1.2.3