From 6aca4694fe1125859538fed6a2763e5695a7fdf8 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Wed, 30 Sep 2015 16:10:50 +0200 Subject: [PATCH] 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. --- borg/repository.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/borg/repository.py b/borg/repository.py index f43161fb6..ee3074311 100644 --- a/borg/repository.py +++ b/borg/repository.py @@ -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)