diff options
author | Samuel Cabrero <scabrero@suse.de> | 2022-06-13 16:53:32 +0200 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2022-06-27 15:50:30 +0000 |
commit | 633ccc55c0670cfe663ab7bf119feb8b22c92794 (patch) | |
tree | 60ec2420ece0d2fa60734f628e4724deec31a093 /libgpo | |
parent | d64335eaef5ad690ea923a8e6656b9185a54d9fa (diff) | |
download | samba-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')
-rw-r--r-- | libgpo/pygpo.c | 19 |
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; } |