[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha7-1106-g5df2795

Jelmer Vernooij jelmer at samba.org
Mon Apr 20 13:11:20 GMT 2009


The branch, master has been updated
       via  5df2795ffc57f510cda0eb07a9e589cf8daf6de5 (commit)
       via  294359b7bcb84b2284c5a76e1a453c3483dd3bb2 (commit)
      from  b5b6ecb58aeba196c28370cde21a0826f81d8da6 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 5df2795ffc57f510cda0eb07a9e589cf8daf6de5
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Apr 20 15:10:17 2009 +0200

    Add a unit test for security_descriptor.as_sddl() without arguments.

commit 294359b7bcb84b2284c5a76e1a453c3483dd3bb2
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Apr 20 15:03:21 2009 +0200

    Make domain sid argument to as_sddl() optional.

-----------------------------------------------------------------------

Summary of changes:
 source4/libcli/security/tests/bindings.py |   10 ++++++++++
 source4/librpc/ndr/py_security.c          |   15 ++++++++++++---
 2 files changed, 22 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/libcli/security/tests/bindings.py b/source4/libcli/security/tests/bindings.py
index 24ee01c..5c15305 100644
--- a/source4/libcli/security/tests/bindings.py
+++ b/source4/libcli/security/tests/bindings.py
@@ -67,6 +67,16 @@ class SecurityDescriptorTests(unittest.TestCase):
         self.assertEquals(desc1.sacl, desc2.sacl)
         self.assertEquals(desc1.type, desc2.type)
 
+    def test_as_sddl_no_domainsid(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)
+        desc2 = security.descriptor.from_sddl(desc1.as_sddl(), dom)
+        self.assertEquals(desc1.group_sid, desc2.group_sid)
+        self.assertEquals(desc1.owner_sid, desc2.owner_sid)
+        self.assertEquals(desc1.sacl, desc2.sacl)
+        self.assertEquals(desc1.type, desc2.type)
+
 
 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 f89263b..43c1d50 100644
--- a/source4/librpc/ndr/py_security.c
+++ b/source4/librpc/ndr/py_security.c
@@ -187,13 +187,22 @@ static PyObject *py_descriptor_from_sddl(PyObject *self, PyObject *args)
 	return py_talloc_import((PyTypeObject *)self, secdesc);
 }
 
-static PyObject *py_descriptor_as_sddl(PyObject *self, PyObject *py_sid)
+static PyObject *py_descriptor_as_sddl(PyObject *self, PyObject *args)
 {
-	struct dom_sid *sid = py_talloc_get_ptr(py_sid);
+	struct dom_sid *sid;
+	PyObject *py_sid = Py_None;
 	struct security_descriptor *desc = py_talloc_get_ptr(self);
 	char *text;
 	PyObject *ret;
 
+	if (!PyArg_ParseTuple(args, "|O", &py_sid))
+		return NULL;
+
+	if (py_sid == Py_None)
+		sid = py_talloc_get_ptr(py_sid);
+	else
+		sid = NULL;
+
 	text = sddl_encode(NULL, desc, sid);
 
 	ret = PyString_FromString(text);
@@ -215,7 +224,7 @@ static PyMethodDef py_descriptor_extra_methods[] = {
 		NULL },
 	{ "from_sddl", (PyCFunction)py_descriptor_from_sddl, METH_VARARGS|METH_CLASS, 
 		NULL },
-	{ "as_sddl", (PyCFunction)py_descriptor_as_sddl, METH_O,
+	{ "as_sddl", (PyCFunction)py_descriptor_as_sddl, METH_VARARGS,
 		NULL },
 	{ NULL }
 };


-- 
Samba Shared Repository


More information about the samba-cvs mailing list