summaryrefslogtreecommitdiff
path: root/libgpo
diff options
context:
space:
mode:
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>2018-04-13 12:29:05 +1200
committerDouglas Bagnall <dbagnall@samba.org>2018-05-03 05:25:28 +0200
commit1b3d3304e5a55dbc4353ddade82da43e079e33ed (patch)
treeae6b2cb4e69d923537650c16dd1f708df8ca82fc /libgpo
parenta82ca08f37658069aa547a98344b48aaf6b4a270 (diff)
downloadsamba-1b3d3304e5a55dbc4353ddade82da43e079e33ed.tar.gz
python.gpo.ADS_STRUCT: check type of loadparm argument
And add a test showning the segfault. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'libgpo')
-rw-r--r--libgpo/pygpo.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/libgpo/pygpo.c b/libgpo/pygpo.c
index db336021125..60220a6bc2a 100644
--- a/libgpo/pygpo.c
+++ b/libgpo/pygpo.c
@@ -183,7 +183,14 @@ static int py_ads_init(ADS *self, PyObject *args, PyObject *kwds)
}
if (lp_obj) {
- bool ok;
+ bool ok = py_check_dcerpc_type(lp_obj, "samba.param",
+ "LoadParm");
+ if (!ok) {
+ PyErr_Format(PyExc_TypeError,
+ "Expected samba.param.LoadParm "
+ "for lp argument");
+ return -1;
+ }
lp_ctx = pytalloc_get_type(lp_obj, struct loadparm_context);
if (lp_ctx == NULL) {
return -1;