deploy-ng: be lenient when processing DLLs with invalid codepage

This commit is contained in:
rdb 2018-05-13 23:35:34 +02:00
parent ef69e8935f
commit 5322811e08

View File

@ -112,11 +112,18 @@ class DataResource(object):
self.data = None
self.code_page = 0
def get_data(self):
if self.code_page:
return self.data.encode('cp%d' % self.code_page)
@property
def encoding(self):
if self.code_page == 0:
return 'ascii'
else:
return self.data
return 'cp%d' % (self.code_page)
def get_data(self):
return self.data
def get_text(self, errors='strict'):
return self.data.decode(self.encoding, errors)
class IconGroupResource(object):
@ -479,10 +486,6 @@ class ResourceTable(object):
entry = IconGroupResource()
entry.unpack_from(data)
else:
if code_page != 0:
# Decode the data using the provided code page.
data = data.decode("cp%d" % code_page)
entry = DataResource()
entry.data = data
entry.code_page = code_page