From: nadezhda ivanova Date: Thu, 23 Apr 2009 14:18:23 +0000 (+0300) Subject: Fix of a bug in the security.descriptor.as_sddl() method X-Git-Tag: tdb-1.1.5~914^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=90cc5e72ba0cf4b5261be2f2aa9db87bd011fbb0;p=thirdparty%2Fsamba.git Fix of a bug in the security.descriptor.as_sddl() method security.descriptor.as_sddl() method did not work correctly when invoked without supplying the domain sid. Returned the same value as when the sid was provided. Test added for this case in libcli/security/tests/bindings.py Signed-off-by: Jelmer Vernooij --- diff --git a/source4/libcli/security/tests/bindings.py b/source4/libcli/security/tests/bindings.py index 5c153050be6..f0d55f12cae 100644 --- a/source4/libcli/security/tests/bindings.py +++ b/source4/libcli/security/tests/bindings.py @@ -77,6 +77,12 @@ class SecurityDescriptorTests(unittest.TestCase): self.assertEquals(desc1.sacl, desc2.sacl) self.assertEquals(desc1.type, desc2.type) + def test_domsid_nodomsid_as_sddl(self): + dom = security.dom_sid("S-2-0-0") + text = "O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)" + desc1 = security.descriptor.from_sddl(text, dom) + self.assertNotEqual(desc1.as_sddl(), desc1.as_sddl(dom)) + class DomSidTests(unittest.TestCase): def test_parse_sid(self): diff --git a/source4/librpc/ndr/py_security.c b/source4/librpc/ndr/py_security.c index 43c1d50d666..1b54aab02af 100644 --- a/source4/librpc/ndr/py_security.c +++ b/source4/librpc/ndr/py_security.c @@ -198,7 +198,7 @@ static PyObject *py_descriptor_as_sddl(PyObject *self, PyObject *args) if (!PyArg_ParseTuple(args, "|O", &py_sid)) return NULL; - if (py_sid == Py_None) + if (py_sid != Py_None) sid = py_talloc_get_ptr(py_sid); else sid = NULL;