1
0
mirror of https://github.com/altlinux/gpupdate.git synced 2025-03-21 18:50:38 +03:00

Merge pull request #91 from altlinux/fix_ownership_problem

Fix TALLOC ownership problem in PReg parser
This commit is contained in:
NIR 2020-06-30 17:38:56 +04:00 committed by GitHub
commit 63e4dd0767
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -59,10 +59,12 @@ def load_pol_preg(polfile):
with open(polfile, 'rb') as f:
data = f.read()
logging.debug('PReg length: {}'.format(len(data)))
gpparser.parse(data)
#print(gpparser.pol_file.__ndr_print__())
return gpparser.pol_file
pentries = preg2entries(gpparser.pol_file)
return pentries
def preg_keymap(preg):
@ -89,16 +91,24 @@ def merge_polfile(preg, sid=None, reg_name='registry', reg_path=None, policy_nam
class entry:
def __init__(self, e_keyname, e_valuename, e_type, e_data):
logging.debug(slogm('Entry init e_keyname {}'.format(e_keyname)))
logging.debug(slogm('Entry init e_valuename {}'.format(e_valuename)))
logging.debug(slogm('Entry init e_type {}'.format(e_type)))
logging.debug(slogm('Entry init e_data {}'.format(e_data)))
self.keyname = e_keyname
self.valuename = e_valuename
self.type = e_type
self.data = e_data
class pentries:
def __init__(self):
self.entries = list()
def preg2entries(preg_obj):
entries = []
for elem in prej_obj.entries:
entries = pentries()
for elem in preg_obj.entries:
entry_obj = entry(elem.keyname, elem.valuename, elem.type, elem.data)
entries.append(entry_obj)
entries.entries.append(entry_obj)
return entries