]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
python:netcmd:gpo: fix crash when updating an MOTD GPO
authorAndreas Hasenack <andreas.hasenack@canonical.com>
Tue, 18 Feb 2025 15:43:46 +0000 (12:43 -0300)
committerJule Anger <janger@samba.org>
Thu, 17 Apr 2025 11:16:13 +0000 (11:16 +0000)
When the policy exists already, there is no exception and the code
tries to use the "data" variable, but it doesn't exist because it was
only defined in the exception handling.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15774

Signed-off-by: Andreas Hasenack <andreas.hasenack@canonical.com>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
(cherry picked from commit e87e20c04d90292e3a5caac8ea3105b16f948ed3)

python/samba/netcmd/gpo.py
selftest/knownfail.d/samba-tool-gpo [deleted file]

index ba55b2ec7a772224c0679032894c982a2fca56a2..d36d034d208fd3852669511b98b0be15abf1847c 100644 (file)
@@ -3808,7 +3808,9 @@ samba-tool gpo manage motd set {31B2F340-016D-11D2-945F-00C04FB984F9} "Message f
             return
 
         try:
-            xml_data = ET.fromstring(conn.loadfile(vgp_xml))
+            xml_data = ET.ElementTree(ET.fromstring(conn.loadfile(vgp_xml)))
+            policysetting = xml_data.getroot().find('policysetting')
+            data = policysetting.find('data')
         except NTSTATUSError as e:
             if e.args[0] in [NT_STATUS_OBJECT_NAME_INVALID,
                              NT_STATUS_OBJECT_NAME_NOT_FOUND,
@@ -3834,7 +3836,9 @@ samba-tool gpo manage motd set {31B2F340-016D-11D2-945F-00C04FB984F9} "Message f
             else:
                 raise
 
-        text = ET.SubElement(data, 'text')
+        text = data.find('text')
+        if text is None:
+            text = ET.SubElement(data, 'text')
         text.text = value
 
         out = BytesIO()
diff --git a/selftest/knownfail.d/samba-tool-gpo b/selftest/knownfail.d/samba-tool-gpo
deleted file mode 100644 (file)
index e8ab469..0000000
+++ /dev/null
@@ -1 +0,0 @@
-^samba.tests.samba_tool.gpo.+GpoCmdTestCase.test_vgp_motd_set_thrice