diff options
author | nadezhda ivanova <nivanova@ved.salsa.postpath.local> | 2009-04-23 17:18:23 +0300 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2009-04-23 18:21:25 +0200 |
commit | 90cc5e72ba0cf4b5261be2f2aa9db87bd011fbb0 (patch) | |
tree | 3ca9402fe8df738b8305d6391983882db51914e6 | |
parent | 3cf48ee05ae99fb99d1b7b7204f9b8c444907a4a (diff) | |
download | samba-90cc5e72ba0cf4b5261be2f2aa9db87bd011fbb0.tar.gz samba-90cc5e72ba0cf4b5261be2f2aa9db87bd011fbb0.tar.bz2 samba-90cc5e72ba0cf4b5261be2f2aa9db87bd011fbb0.zip |
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 <jelmer@samba.org>
-rw-r--r-- | source4/libcli/security/tests/bindings.py | 6 | ||||
-rw-r--r-- | source4/librpc/ndr/py_security.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/source4/libcli/security/tests/bindings.py b/source4/libcli/security/tests/bindings.py index 5c153050be..f0d55f12ca 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 43c1d50d66..1b54aab02a 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; |