summaryrefslogtreecommitdiff
path: root/source4/auth
diff options
context:
space:
mode:
Diffstat (limited to 'source4/auth')
-rw-r--r--source4/auth/credentials/pycredentials.c23
-rw-r--r--source4/auth/gensec/pygensec.c2
-rw-r--r--source4/auth/pyauth.c7
3 files changed, 22 insertions, 10 deletions
diff --git a/source4/auth/credentials/pycredentials.c b/source4/auth/credentials/pycredentials.c
index cd578a5c11..c5cca4fb32 100644
--- a/source4/auth/credentials/pycredentials.c
+++ b/source4/auth/credentials/pycredentials.c
@@ -197,14 +197,18 @@ static PyObject *py_creds_guess(py_talloc_Object *self, PyObject *args)
{
PyObject *py_lp_ctx = Py_None;
struct loadparm_context *lp_ctx;
+ struct cli_credentials *creds;
+
+ creds = PyCredentials_AsCliCredentials(self);
+
if (!PyArg_ParseTuple(args, "|O", &py_lp_ctx))
return NULL;
- lp_ctx = lp_from_py_object(py_lp_ctx);
+ lp_ctx = lp_from_py_object(NULL, py_lp_ctx); /* FIXME: leaky */
if (lp_ctx == NULL)
return NULL;
- cli_credentials_guess(PyCredentials_AsCliCredentials(self), lp_ctx);
+ cli_credentials_guess(creds, lp_ctx);
Py_RETURN_NONE;
}
@@ -214,14 +218,18 @@ static PyObject *py_creds_set_machine_account(py_talloc_Object *self, PyObject *
PyObject *py_lp_ctx = Py_None;
struct loadparm_context *lp_ctx;
NTSTATUS status;
+ struct cli_credentials *creds;
+
+ creds = PyCredentials_AsCliCredentials(self);
+
if (!PyArg_ParseTuple(args, "|O", &py_lp_ctx))
return NULL;
- lp_ctx = lp_from_py_object(py_lp_ctx);
+ lp_ctx = lp_from_py_object(NULL, py_lp_ctx); /* FIXME: leaky */
if (lp_ctx == NULL)
return NULL;
- status = cli_credentials_set_machine_account(PyCredentials_AsCliCredentials(self), lp_ctx);
+ status = cli_credentials_set_machine_account(creds, lp_ctx);
PyErr_NTSTATUS_IS_ERR_RAISE(status);
Py_RETURN_NONE;
@@ -255,17 +263,20 @@ static PyObject *py_creds_get_named_ccache(py_talloc_Object *self, PyObject *arg
struct tevent_context *event_ctx;
int ret;
const char *error_string;
+ struct cli_credentials *creds;
+
+ creds = PyCredentials_AsCliCredentials(self);
if (!PyArg_ParseTuple(args, "|Os", &py_lp_ctx, &ccache_name))
return NULL;
- lp_ctx = lp_from_py_object(py_lp_ctx);
+ lp_ctx = lp_from_py_object(NULL, py_lp_ctx); /* FIXME: leaky */
if (lp_ctx == NULL)
return NULL;
event_ctx = tevent_context_init(NULL);
- ret = cli_credentials_get_named_ccache(PyCredentials_AsCliCredentials(self), event_ctx, lp_ctx,
+ ret = cli_credentials_get_named_ccache(creds, event_ctx, lp_ctx,
ccache_name, &ccc, &error_string);
if (ret == 0) {
talloc_steal(ccc, event_ctx);
diff --git a/source4/auth/gensec/pygensec.c b/source4/auth/gensec/pygensec.c
index 381938c25a..2b4963c843 100644
--- a/source4/auth/gensec/pygensec.c
+++ b/source4/auth/gensec/pygensec.c
@@ -69,7 +69,7 @@ static struct gensec_settings *settings_from_object(TALLOC_CTX *mem_ctx, PyObjec
}
s->target_hostname = PyString_AsString(py_hostname);
- s->lp_ctx = lp_from_py_object(py_lp_ctx);
+ s->lp_ctx = lp_from_py_object(s, py_lp_ctx);
s->iconv_convenience = py_iconv_convenience(s);
return s;
}
diff --git a/source4/auth/pyauth.c b/source4/auth/pyauth.c
index f81b449540..2563b85570 100644
--- a/source4/auth/pyauth.c
+++ b/source4/auth/pyauth.c
@@ -46,7 +46,7 @@ static PyObject *py_system_session(PyObject *module, PyObject *args)
if (!PyArg_ParseTuple(args, "|O", &py_lp_ctx))
return NULL;
- lp_ctx = lp_from_py_object(py_lp_ctx);
+ lp_ctx = lp_from_py_object(NULL, py_lp_ctx); /* FIXME: Leaks memory */
if (lp_ctx == NULL)
return NULL;
@@ -61,10 +61,11 @@ static PyObject *py_system_session_anon(PyObject *module, PyObject *args)
PyObject *py_lp_ctx = Py_None;
struct loadparm_context *lp_ctx;
struct auth_session_info *session;
+
if (!PyArg_ParseTuple(args, "|O", &py_lp_ctx))
return NULL;
- lp_ctx = lp_from_py_object(py_lp_ctx);
+ lp_ctx = lp_from_py_object(NULL, py_lp_ctx); /* FIXME: leaks memory */
if (lp_ctx == NULL)
return NULL;
@@ -83,7 +84,7 @@ static PyObject *py_admin_session(PyObject *module, PyObject *args)
if (!PyArg_ParseTuple(args, "OO", &py_lp_ctx, &py_sid))
return NULL;
- lp_ctx = lp_from_py_object(py_lp_ctx);
+ lp_ctx = lp_from_py_object(NULL, py_lp_ctx); /* FIXME: leaky */
if (lp_ctx == NULL)
return NULL;