summaryrefslogtreecommitdiff
path: root/libgpo/pygpo.c
diff options
context:
space:
mode:
authorSamuel Cabrero <scabrero@suse.de>2022-06-13 16:53:32 +0200
committerJeremy Allison <jra@samba.org>2022-06-27 15:50:30 +0000
commit633ccc55c0670cfe663ab7bf119feb8b22c92794 (patch)
tree60ec2420ece0d2fa60734f628e4724deec31a093 /libgpo/pygpo.c
parentd64335eaef5ad690ea923a8e6656b9185a54d9fa (diff)
downloadsamba-633ccc55c0670cfe663ab7bf119feb8b22c92794.tar.gz
s3:libads: Allocate ads->auth.user_name under ADS_STRUCT talloc context
Signed-off-by: Samuel Cabrero <scabrero@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'libgpo/pygpo.c')
-rw-r--r--libgpo/pygpo.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/libgpo/pygpo.c b/libgpo/pygpo.c
index b9570b24d82..485c96f4f2d 100644
--- a/libgpo/pygpo.c
+++ b/libgpo/pygpo.c
@@ -229,12 +229,16 @@ static PyObject* py_ads_connect(ADS *self,
PyErr_SetString(PyExc_RuntimeError, "Uninitialized");
return NULL;
}
- SAFE_FREE(self->ads_ptr->auth.user_name);
+ TALLOC_FREE(self->ads_ptr->auth.user_name);
TALLOC_FREE(self->ads_ptr->auth.password);
TALLOC_FREE(self->ads_ptr->auth.realm);
if (self->cli_creds) {
- self->ads_ptr->auth.user_name =
- SMB_STRDUP(cli_credentials_get_username(self->cli_creds));
+ self->ads_ptr->auth.user_name = talloc_strdup(self->ads_ptr,
+ cli_credentials_get_username(self->cli_creds));
+ if (self->ads_ptr->auth.user_name == NULL) {
+ PyErr_NoMemory();
+ goto err;
+ }
self->ads_ptr->auth.password = talloc_strdup(self->ads_ptr,
cli_credentials_get_password(self->cli_creds));
if (self->ads_ptr->auth.password == NULL) {
@@ -251,16 +255,17 @@ static PyObject* py_ads_connect(ADS *self,
status = ads_connect_user_creds(self->ads_ptr);
} else {
char *passwd = NULL;
- int ret;
+
if (!secrets_init()) {
PyErr_SetString(PyExc_RuntimeError,
"secrets_init() failed");
goto err;
}
- ret = asprintf(&(self->ads_ptr->auth.user_name), "%s$",
- lp_netbios_name());
- if (ret == -1) {
+ self->ads_ptr->auth.user_name = talloc_asprintf(self->ads_ptr,
+ "%s$",
+ lp_netbios_name());
+ if (self->ads_ptr->auth.user_name == NULL) {
PyErr_NoMemory();
goto err;
}