fix segment entry header size check, attic issue #352

it only checked for too big sizes, but not for too small ones.
that made it die with a ValueError and not raise the appropriate IntegrityError
that gets handled in check() and triggers the repair attempt for the segment.
This commit is contained in:
Thomas Waldmann 2015-09-30 16:10:50 +02:00
parent a3d967bdff
commit 6aca4694fe
1 changed files with 1 additions and 1 deletions

View File

@ -538,7 +538,7 @@ class LoggedIO:
crc, size, tag = self.header_fmt.unpack(header)
except struct.error as err:
raise IntegrityError('Invalid segment entry header [offset {}]: {}'.format(offset, err))
if size > MAX_OBJECT_SIZE:
if size > MAX_OBJECT_SIZE or size < self.header_fmt.size:
raise IntegrityError('Invalid segment entry size [offset {}]'.format(offset))
length = size - self.header_fmt.size
rest = fd.read(length)