diff options
author | Andrew Bartlett <abartlet@samba.org> | 2017-08-09 13:57:13 +1200 |
---|---|---|
committer | Garming Sam <garming@samba.org> | 2017-08-15 12:00:58 +0200 |
commit | 0dbcd6a4eafb75e1d888e71ee0fa74f36cc6af62 (patch) | |
tree | 0cbc90a023b565d50ceb9856d4d147f02efe3b81 /source4/librpc | |
parent | 5bb341fb9ceb943b4a72108edee9046b60f070b0 (diff) | |
download | samba-0dbcd6a4eafb75e1d888e71ee0fa74f36cc6af62.tar.gz |
py-librpc: Strictly check the type of the incoming sid pointer
This avoids casting another type of object to a void* and then to a SID
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Autobuild-User(master): Garming Sam <garming@samba.org>
Autobuild-Date(master): Tue Aug 15 12:00:58 CEST 2017 on sn-devel-144
Diffstat (limited to 'source4/librpc')
-rw-r--r-- | source4/librpc/ndr/py_security.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source4/librpc/ndr/py_security.c b/source4/librpc/ndr/py_security.c index 4cc25664996..8288748b2be 100644 --- a/source4/librpc/ndr/py_security.c +++ b/source4/librpc/ndr/py_security.c @@ -249,6 +249,13 @@ static PyObject *py_descriptor_from_sddl(PyObject *self, PyObject *args) if (!PyArg_ParseTuple(args, "sO!", &sddl, &dom_sid_Type, &py_sid)) return NULL; + if (!PyObject_TypeCheck(py_sid, &dom_sid_Type)) { + PyErr_SetString(PyExc_TypeError, + "expected security.dom_sid " + "for second argument to .from_sddl"); + return NULL; + } + sid = pytalloc_get_ptr(py_sid); secdesc = sddl_decode(NULL, sddl, sid); |