diff options
author | Samuel Cabrero <scabrero@samba.org> | 2022-06-15 12:16:23 +0200 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2022-06-27 15:50:30 +0000 |
commit | 9fe2cf1b206854c9351377d9769b96bea6e79b91 (patch) | |
tree | a625b379efa9697d40462faf00eb7f277b84368c | |
parent | 40cd92040b9ed238614e1a9d00352cac5e718a86 (diff) | |
download | samba-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.c | 1 | ||||
-rwxr-xr-x | source3/libads/ldap.c | 9 |
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); |