Skip to content

Commit 75548d2

Browse files
committed
fix(metadata): do not report the whole header.
1 parent a4eb8ca commit 75548d2

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

unblob/handlers/archive/sevenzip.py

+7-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@
1818
https://py7zr.readthedocs.io/en/latest/archive_format.html
1919
"""
2020
import binascii
21-
from typing import Optional
21+
from typing import Dict, Optional
2222

23+
from dissect.cstruct import Instance
2324
from structlog import get_logger
2425

2526
from unblob.extractors import Command
@@ -57,6 +58,9 @@ class SevenZipHandler(StructHandler):
5758
HEADER_STRUCT = "sevenzip_header_t"
5859
EXTRACTOR = Command("7z", "x", "-p", "-y", "{inpath}", "-o{outdir}")
5960

61+
def get_metadata(self, header: Instance) -> Dict:
62+
return {"version_maj": header.version_maj, "version_min": header.version_min}
63+
6064
def calculate_chunk(self, file: File, start_offset: int) -> Optional[ValidChunk]:
6165
header = self.parse_header(file)
6266

@@ -67,9 +71,10 @@ def calculate_chunk(self, file: File, start_offset: int) -> Optional[ValidChunk]
6771
logger.debug("Invalid header CRC", _verbosity=2)
6872
return None
6973

74+
metadata = self.get_metadata(header)
7075
# We read the signature header here to get the offset to the header database
7176
first_db_header = start_offset + len(header) + header.next_header_offset
7277
end_offset = first_db_header + header.next_header_size
7378
return ValidChunk(
74-
start_offset=start_offset, end_offset=end_offset, metadata=header
79+
start_offset=start_offset, end_offset=end_offset, metadata=metadata
7580
)

0 commit comments

Comments
 (0)