]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
python: Do not interpret 16 character group names as GUIDs
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Fri, 13 Jun 2025 00:29:02 +0000 (12:29 +1200)
committerJule Anger <janger@samba.org>
Thu, 19 Jun 2025 08:49:44 +0000 (08:49 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15854

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Björn Baumbach <bb@samba.org>
Autobuild-User(master): Douglas Bagnall <dbagnall@samba.org>
Autobuild-Date(master): Mon Jun 16 22:22:27 UTC 2025 on atb-devel-224

(cherry picked from commit 7c99658e22c6761ccf9abbdea588553a46af7453)

Autobuild-User(v4-22-test): Jule Anger <janger@samba.org>
Autobuild-Date(v4-22-test): Thu Jun 19 08:49:44 UTC 2025 on atb-devel-224

python/samba/samdb.py
selftest/knownfail.d/samba-tool-group-addmember [deleted file]

index 0545aed98ebac2fec13d2c1196181fe7af553d81..7a1cee1e10841d579712974dac01a3bc2bee7b26 100644 (file)
@@ -35,6 +35,7 @@ from samba.common import normalise_int32
 from samba.common import get_bytes, cmp
 from samba.dcerpc import security
 from samba import is_ad_dc_built
+from samba import string_is_guid
 from samba import NTSTATUSError, ntstatus
 import binascii
 
@@ -388,6 +389,13 @@ lockoutTime: 0
 
         partial_groupfilter = None
 
+        # If <group> looks like a SID, GUID, or DN, we use it
+        # accordingly, otherwise as a name.
+        #
+        # Because misc.GUID() will read any 16 byte sequence as a
+        # binary guid, we need to be careful not to read 16 character
+        # names as GUIDs.
+
         group_sid = None
         try:
             group_sid = security.dom_sid(group)
@@ -397,7 +405,7 @@ lockoutTime: 0
             partial_groupfilter = "(objectClass=*)"
 
         group_guid = None
-        if partial_groupfilter is None:
+        if partial_groupfilter is None and string_is_guid(group):
             try:
                 group_guid = misc.GUID(group)
             except NTSTATUSError as e:
diff --git a/selftest/knownfail.d/samba-tool-group-addmember b/selftest/knownfail.d/samba-tool-group-addmember
deleted file mode 100644 (file)
index ddc6021..0000000
+++ /dev/null
@@ -1 +0,0 @@
-^samba.tests.samba_tool.group.+GroupCmdTestCase.test_addmember