From: Garming Sam Date: Tue, 26 Feb 2019 02:35:44 +0000 (+1300) Subject: gpo: Parse GPT.INI with Latin-1 X-Git-Tag: talloc-2.2.0~111 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=75cf728398421435186559306b0962c70f333c6e;p=thirdparty%2Fsamba.git gpo: Parse GPT.INI with Latin-1 For some reason the French version of RSAT turns accents into ISO-8859-1. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13806 Signed-off-by: Garming Sam Reviewed-by: Andrew Bartlett --- diff --git a/python/samba/gp_parse/gp_ini.py b/python/samba/gp_parse/gp_ini.py index 58aee88a1e1..590b71b9a6c 100644 --- a/python/samba/gp_parse/gp_ini.py +++ b/python/samba/gp_parse/gp_ini.py @@ -105,6 +105,17 @@ class GPIniParser(GPParser): class GPTIniParser(GPIniParser): encoding = 'utf-8' + def parse(self, contents): + try: + super(GPTIniParser, self).parse(contents) + except UnicodeDecodeError: + # Required dict_type in Python 2.7 + self.ini_conf = ConfigParser(dict_type=collections.OrderedDict) + self.ini_conf.optionxform = str + + # Fallback to Latin-1 which RSAT appears to use + self.ini_conf.readfp(StringIO(contents.decode('iso-8859-1'))) + class GPScriptsIniParser(GPIniParser): def build_xml_parameter(self, section_xml, section, key_ini, val_ini):