samba.smb.SMB:set_acl seems to generate a bad nttrans:SET_SD request
Alexander Bokovoy
ab at samba.org
Sun Mar 25 09:54:33 MDT 2012
On Sun, Mar 25, 2012 at 18:38, Richard Sharpe
<realrichardsharpe at gmail.com> wrote:
> 2012/3/25 Richard Sharpe <realrichardsharpe at gmail.com>:
>> On Sun, Mar 25, 2012 at 7:56 AM, Alexander Bokovoy <ab at samba.org> wrote:
>>> 2012/3/25 Richard Sharpe <realrichardsharpe at gmail.com>:
>>> There are quite few places where Python bindings are not yet finished.
>>> Basically, they followed needs of Samba4 thus perhaps certain features
>>> are hardcoded.
>>
>> Well, if I could only figure out how to quickly rebuild the Python
>> support (even the stuff in source4/... I would be able to make more
>> progress :-(
>
> Still no progress on that, but here is a more correct patch that also
> fixes, I think, the PyDoc stuff:
This one looks fine to me. Perhaps we need to be more expressive on
what security_info is -- in definitions of the flags, not here.
Let's run it past Jelmer as well.
I've added samba-technical@ back.
>
> diff --git a/source4/libcli/pysmb.c b/source4/libcli/pysmb.c
> index 2f9a579..591d471 100644
> --- a/source4/libcli/pysmb.c
> +++ b/source4/libcli/pysmb.c
> @@ -367,9 +367,10 @@ static PyObject *py_smb_setacl(pytalloc_Object *self, PyObj
> const char *filename;
> PyObject *py_sd;
> struct security_descriptor *sd;
> + uint32_t sinfo = 0;
> int fnum;
>
> - if (!PyArg_ParseTuple(args, "sO:set_acl", &filename, &py_sd)) {
> + if (!PyArg_ParseTuple(args, "sOl:set_acl", &filename, &py_sd, &sinfo)) {
> return NULL;
> }
>
> @@ -410,7 +411,7 @@ static PyObject *py_smb_setacl(pytalloc_Object *self, PyObje
>
> fio.set_secdesc.level = RAW_SFILEINFO_SEC_DESC;
> fio.set_secdesc.in.file.fnum = fnum;
> - fio.set_secdesc.in.secinfo_flags = 0;
> + fio.set_secdesc.in.secinfo_flags = sinfo;
> fio.set_secdesc.in.sd = sd;
>
> status = smb_raw_set_secdesc(spdata->tree, &fio);
> @@ -450,7 +451,7 @@ static PyMethodDef py_smb_methods[] = {
> "get_acl(path) -> security_descriptor object\n\n \
> Get security descriptor for file." },
> { "set_acl", (PyCFunction)py_smb_setacl, METH_VARARGS,
> - "set_acl(path, security_descriptor) -> None\n\n \
> + "set_acl(path, security_descriptor, security_info) -> None\n\n \
> Set security descriptor for file." },
> { NULL },
> };
> @@ -522,7 +523,7 @@ static PyTypeObject PySMB = {
> .tp_new = py_smb_new,
> .tp_flags = Py_TPFLAGS_DEFAULT,
> .tp_methods = py_smb_methods,
> - .tp_doc = "SMB(hostname, service[, lp[, creds]]) -> SMB connection objec
> + .tp_doc = "SMB(hostname, service[, creds[, lp]]) -> SMB
> connection object
>
> };
>
>
>
> --
> Regards,
> Richard Sharpe
> (何以解憂?唯有杜康。--曹操)
--
/ Alexander Bokovoy
More information about the samba-technical
mailing list