Files
neoboot/NeoBoot/ubi_reader_arm/ubi/headers/errors.py
2021-04-14 00:13:51 +04:30

30 lines
759 B
Python

#!/usr/bin/python
from zlib import crc32
from ubi.defines import *
def ec_hdr(ec_hdr, buf):
if ec_hdr.hdr_crc != ~crc32(buf[:-4]) & 4294967295L:
ec_hdr.errors.append('crc')
return ec_hdr
def vid_hdr(vid_hdr, buf):
vid_hdr.errors = []
if vid_hdr.hdr_crc != ~crc32(buf[:-4]) & 4294967295L:
vid_hdr.errors.append('crc')
return vid_hdr
def vtbl_rec(vtbl_rec, buf):
likely_vtbl = True
if vtbl_rec.name_len != len(vtbl_rec.name.strip('\x00')):
likely_vtbl = False
elif vtbl_rec.vol_type not in (1, 2):
likely_vtbl = False
if vtbl_rec.crc != ~crc32(buf[:-4]) & 4294967295L:
vtbl_rec.errors.append('crc')
if not likely_vtbl:
vtbl_rec.errors = ['False']
return vtbl_rec