The branch, master has been updated via 7c99658e22c python: Do not interpret 16 character group names as GUIDs via f545a77a3c4 pytest: samba-tool group: test with 16 character name via 3150d103bb2 pytest:samba-tool group: test addmembers from f2935d37d5f libsmbclient: Intercept "smb311_posix.statinfo" attribute
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 7c99658e22c6761ccf9abbdea588553a46af7453 Author: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Date: Fri Jun 13 12:29:02 2025 +1200 python: Do not interpret 16 character group names as GUIDs BUG: https://bugzilla.samba.org/show_bug.cgi?id=15854 Signed-off-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Reviewed-by: Björn Baumbach <b...@samba.org> Autobuild-User(master): Douglas Bagnall <dbagn...@samba.org> Autobuild-Date(master): Mon Jun 16 22:22:27 UTC 2025 on atb-devel-224 commit f545a77a3c466e2be37e0c453861566d42b1a01d Author: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Date: Fri Jun 13 11:38:22 2025 +1200 pytest: samba-tool group: test with 16 character name BUG: https://bugzilla.samba.org/show_bug.cgi?id=15854 Signed-off-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Reviewed-by: Björn Baumbach <b...@samba.org> commit 3150d103bb2990e005d70c90f3f9c316c5353005 Author: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Date: Fri Jun 13 12:23:30 2025 +1200 pytest:samba-tool group: test addmembers BUG: https://bugzilla.samba.org/show_bug.cgi?id=15854 Signed-off-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Reviewed-by: Björn Baumbach <b...@samba.org> ----------------------------------------------------------------------- Summary of changes: python/samba/samdb.py | 10 +++++++++- python/samba/tests/samba_tool/group.py | 17 ++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) Changeset truncated at 500 lines: diff --git a/python/samba/samdb.py b/python/samba/samdb.py index ab3d40d70aa..6d1f3f0da3c 100644 --- a/python/samba/samdb.py +++ b/python/samba/samdb.py @@ -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/python/samba/tests/samba_tool/group.py b/python/samba/tests/samba_tool/group.py index e8c0960849f..1c5bc9690f9 100644 --- a/python/samba/tests/samba_tool/group.py +++ b/python/samba/tests/samba_tool/group.py @@ -38,7 +38,8 @@ class GroupCmdTestCase(SambaToolCmdTest): self.groups.append(self._randomGroup({"name": "testgroup1"})) self.groups.append(self._randomGroup({"name": "testgroup2"})) self.groups.append(self._randomGroup({"name": "testgroup3"})) - self.groups.append(self._randomGroup({"name": "testgroup4"})) + self.groups.append(self._randomGroup( + {"name": "16 character name for bug 15854"[:16]})) self.groups.append(self._randomGroup({"name": "testgroup5 (with brackets)"})) self.groups.append(self._randomPosixGroup({"name": "posixgroup1"})) self.groups.append(self._randomPosixGroup({"name": "posixgroup2"})) @@ -334,6 +335,20 @@ class GroupCmdTestCase(SambaToolCmdTest): name = str(groupobj.get("dn", idx=0)) self.assertMatch(out, name, "group '%s' not found" % name) + def test_addmember(self): + groups = [g['name'] for g in self.groups] + for parent, child in zip(groups, groups[1:]): + (result, out, err) = self.runsubcmd( + "group", "addmembers", parent, child) + self.assertCmdSuccess(result, out, err) + + (result, out, err) = self.runsubcmd( + "group", "addmembers", groups[-1], ','.join(groups[:-1])) + self.assertCmdSuccess(result, out, err) + + (result, out, err) = self.runsubcmd( + "group", "addmembers", groups[0], "alice,bob") + self.assertCmdSuccess(result, out, err) def test_move(self): full_ou_dn = str(self.samdb.normalize_dn_in_domain("OU=movetest_grp")) -- Samba Shared Repository