]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
gp: Fix rsop when final value isn't a str
authorDavid Mulder <dmulder@samba.org>
Fri, 9 Dec 2022 16:40:34 +0000 (09:40 -0700)
committerJeremy Allison <jra@samba.org>
Wed, 21 Dec 2022 02:04:37 +0000 (02:04 +0000)
The output must be a string value, or it will
crash. Chromium policies output integers, which
was causing the parser to crash.

Signed-off-by: David Mulder <dmulder@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
python/samba/gp/gpclass.py

index d6ada1dbaadacf0b4f8aeef05422e3cffc12a9d1..4737bfe07380e3c3fb507bdb9e52d8a19795c5b9 100644 (file)
@@ -42,6 +42,8 @@ from samba.ndr import ndr_pack, ndr_unpack
 from samba.credentials import SMB_SIGNING_REQUIRED
 from samba.gp.util.logging import log
 from hashlib import blake2b
+import numbers
+from samba.common import get_string
 
 try:
     from enum import Enum
@@ -718,7 +720,10 @@ def __rsop_vals(vals, level=4):
         ret = [' '*level + '[ %s ]' % __rsop_vals(v, level+2) for v in vals]
         return '\n' + '\n'.join(ret)
     else:
-        return vals
+        if isinstance(vals, numbers.Number):
+            return ' '*(level+2) + str(vals)
+        else:
+            return ' '*(level+2) + get_string(vals)
 
 def rsop(lp, creds, store, gp_extensions, username, target):
     dc_hostname = get_dc_hostname(creds, lp)