[PATCH] Port of samba.security Python module
Andrew Bartlett
abartlet at samba.org
Sun Aug 27 07:08:57 UTC 2017
On Thu, 2017-08-24 at 14:22 +0200, Andreas Schneider wrote:
> On Thursday, 24 August 2017 13:21:27 CEST Lumir Balhar via samba-technical
> wrote:
> >
> > Hello.
> >
> > Because samba.ntstatus module is now available for Python 3 in master, I
> > tried your suggestion and I replaced integers values with constants from
> > samba.dcerpc.security and samba.ntstatus.
> >
> > Replaced arguments SEC_FLAG_SYSTEM_SECURITY and SEC_STD_READ_CONTROL are
> > working well but exceptions contain different error numbers than
> > NT_STATUS_PRIVILEGE_NOT_HELD and NT_STATUS_ACCESS_DENIED and I cannot
> > find the right ones.
> >
> > NT_STATUS_PRIVILEGE_NOT_HELD = 3221225569 but exception contains -1073741727
> > NT_STATUS_ACCESS_DENIED = 3221225506 but exception contains -1073741790
>
> Sounds like the bug. The exception seems to return an int where it should
> return an unsigned int??
>
> i2c -1073741727
> 18446744072635809889 0xFFFFFFFFC0000061 01777777777770000000141
>
> #define NT_STATUS_PRIVILEGE_NOT_HELD NT_STATUS(0xc0000061)
>
I think:
#define PyErr_FromNTSTATUS(status) Py_BuildValue("(i,s)", NT_STATUS_V(status), discard_const_p(char, get_friendly_nt_error_msg(status)))
in pyerrors.h is wrong.
We probably want an unsigned int, not a signed int, for the first
constant. We first saw this in some other patches that Gary did, where
he ended up casting via a C type casting lib to make it work, but
didn't dig into it properly.
Thanks,
Andrew Bartlett
--
Andrew Bartlett http://samba.org/~abartlet/
Authentication Developer, Samba Team http://samba.org
Samba Developer, Catalyst IT http://catalyst.net.nz/services/samba
More information about the samba-technical
mailing list