Skip to content

Commit 165d7fd

Browse files
committed
Update pyneofile.py
1 parent 25498d4 commit 165d7fd

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

pyneofile.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,14 @@ def _parse_global_header(fp, formatspecs, skipchecksum=False):
695695
extras.append(_read_cstring(fp, delim).decode('UTF-8'))
696696
checksumtype = _read_cstring(fp, delim).decode('UTF-8')
697697
_header_cs = _read_cstring(fp, delim).decode('UTF-8')
698+
# --- Strict check for magic+version against formatspecs ---
699+
exp_magic = formatspecs.get('format_magic', '')
700+
exp_ver = _normalize_ver_digits(_ver_digits(formatspecs.get('format_ver', '001')))
701+
expected_magicver = exp_magic + exp_ver
702+
if str(magicver) != str(expected_magicver):
703+
raise ValueError(
704+
"Bad archive header: magic/version mismatch (got {!r}, expected {!r})".format(magicver, expected_magicver)
705+
)
698706
return {'fencoding': fencoding, 'fnumfiles': fnumfiles, 'fostype': fostype,
699707
'fextradata': extras, 'fchecksumtype': checksumtype,
700708
'ffilelist': [], 'fformatspecs': formatspecs}

0 commit comments

Comments
 (0)