summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Cabrero <scabrero@samba.org>2022-06-15 12:16:23 +0200
committerJeremy Allison <jra@samba.org>2022-06-27 15:50:30 +0000
commit9fe2cf1b206854c9351377d9769b96bea6e79b91 (patch)
treea625b379efa9697d40462faf00eb7f277b84368c
parent40cd92040b9ed238614e1a9d00352cac5e718a86 (diff)
downloadsamba-9fe2cf1b206854c9351377d9769b96bea6e79b91.tar.gz
s3:libads: Allocate ads->config.client_site_name under ADS_STRUCT talloc context
Signed-off-by: Samuel Cabrero <scabrero@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
-rw-r--r--source3/libads/ads_struct.c1
-rwxr-xr-xsource3/libads/ldap.c9
2 files changed, 7 insertions, 3 deletions
diff --git a/source3/libads/ads_struct.c b/source3/libads/ads_struct.c
index 2a583efb685..941f216359d 100644
--- a/source3/libads/ads_struct.c
+++ b/source3/libads/ads_struct.c
@@ -153,7 +153,6 @@ static void ads_destroy(ADS_STRUCT **ads)
#ifdef HAVE_LDAP
ads_disconnect(*ads);
#endif
- SAFE_FREE((*ads)->config.client_site_name);
SAFE_FREE((*ads)->config.schema_path);
SAFE_FREE((*ads)->config.config_path);
}
diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c
index 0a9a59447bb..8a76b8c7d32 100755
--- a/source3/libads/ldap.c
+++ b/source3/libads/ldap.c
@@ -296,7 +296,7 @@ static bool ads_try_connect(ADS_STRUCT *ads, bool gc,
TALLOC_FREE(ads->config.bind_path);
TALLOC_FREE(ads->config.ldap_server_name);
TALLOC_FREE(ads->config.server_site_name);
- SAFE_FREE(ads->config.client_site_name);
+ TALLOC_FREE(ads->config.client_site_name);
TALLOC_FREE(ads->server.workgroup);
if (!check_cldap_reply_required_flags(cldap_reply.server_type,
@@ -342,7 +342,12 @@ static bool ads_try_connect(ADS_STRUCT *ads, bool gc,
if (*cldap_reply.client_site) {
ads->config.client_site_name =
- SMB_STRDUP(cldap_reply.client_site);
+ talloc_strdup(ads, cldap_reply.client_site);
+ if (ads->config.client_site_name == NULL) {
+ DBG_WARNING("Out of memory\n");
+ ret = false;
+ goto out;
+ }
}
ads->server.workgroup = talloc_strdup(ads, cldap_reply.domain_name);