From ef49d0b9eff9b90fa5533d50a0fc26405f44d449 Mon Sep 17 00:00:00 2001 From: David Mulder Date: Mon, 8 Jan 2018 09:16:11 -0700 Subject: [PATCH] gpo: Fix crashes in gpo unapply Signed-off-by: David Mulder Reviewed-by: Garming Sam Reviewed-by: Andrew Bartlett --- python/samba/gpclass.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/python/samba/gpclass.py b/python/samba/gpclass.py index 00330eb5ecb4..ca34120d513a 100644 --- a/python/samba/gpclass.py +++ b/python/samba/gpclass.py @@ -217,12 +217,19 @@ class gp_log: exts = guid_obj.findall('gp_ext') if exts is not None: for ext in exts: - ext_map = {val[0]: val[1] for (key, val) in \ - data_maps[ext.attrib['name']].items()} attrs = ext.findall('attribute') for attr in attrs: - ret.append((attr.attrib['name'], attr.text, - ext_map[attr.attrib['name']])) + func = None + if attr.attrib['name'] in data_maps[ext.attrib['name']]: + func = data_maps[ext.attrib['name']]\ + [attr.attrib['name']][-1] + else: + for dmap in data_maps[ext.attrib['name']].keys(): + if data_maps[ext.attrib['name']][dmap][0] == \ + attr.attrib['name']: + func = data_maps[ext.attrib['name']][dmap][-1] + break + ret.append((attr.attrib['name'], attr.text, func)) return ret def delete(self, gp_ext_name, attribute): -- 2.34.1