diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2010-09-22 15:35:36 -0700 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2010-09-22 17:48:23 -0700 |
commit | 3fea9df85a7d489b81e21a7a63f9e115de712d4c (patch) | |
tree | 07c31f8431ccc4e563922f1b7f56794e449e52c9 /source4/param/provision.c | |
parent | 63031a2a78cff19f1f17137adfbc85a4df05ae36 (diff) | |
download | samba-3fea9df85a7d489b81e21a7a63f9e115de712d4c.tar.gz samba-3fea9df85a7d489b81e21a7a63f9e115de712d4c.tar.xz samba-3fea9df85a7d489b81e21a7a63f9e115de712d4c.zip |
s4-param: Check type when converting python object to lp_ctx, fix some
memory leaks.
Diffstat (limited to 'source4/param/provision.c')
-rw-r--r-- | source4/param/provision.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source4/param/provision.c b/source4/param/provision.c index b0387869b5d..593f9ff168e 100644 --- a/source4/param/provision.c +++ b/source4/param/provision.c @@ -85,7 +85,7 @@ NTSTATUS provision_bare(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, struct provision_result *result) { const char *configfile; - PyObject *provision_mod, *provision_dict, *provision_fn, *py_result, *parameters; + PyObject *provision_mod, *provision_dict, *provision_fn, *py_result, *parameters, *py_lp_ctx; DEBUG(0,("Provision for Become-DC test using python\n")); @@ -193,7 +193,12 @@ NTSTATUS provision_bare(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, result->domaindn = talloc_strdup(mem_ctx, PyString_AsString(PyObject_GetAttrString(py_result, "domaindn"))); /* FIXME paths */ - result->lp_ctx = lpcfg_from_py_object(result, PyObject_GetAttrString(py_result, "lp")); + py_lp_ctx = PyObject_GetAttrString(py_result, "lp"); + if (py_lp_ctx == NULL) { + DEBUG(0, ("Missing 'lp' attribute")); + return NT_STATUS_UNSUCCESSFUL; + } + result->lp_ctx = lpcfg_from_py_object(result, py_lp_ctx); result->samdb = PyLdb_AsLdbContext(PyObject_GetAttrString(py_result, "samdb")); return NT_STATUS_OK; |