From 9fe2cf1b206854c9351377d9769b96bea6e79b91 Mon Sep 17 00:00:00 2001 From: Samuel Cabrero Date: Wed, 15 Jun 2022 12:16:23 +0200 Subject: [PATCH] s3:libads: Allocate ads->config.client_site_name under ADS_STRUCT talloc context Signed-off-by: Samuel Cabrero Reviewed-by: Jeremy Allison --- source3/libads/ads_struct.c | 1 - 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); -- 2.47.3