summaryrefslogtreecommitdiff
path: root/source3/libads
diff options
context:
space:
mode:
authorSamuel Cabrero <scabrero@samba.org>2022-06-10 16:55:43 +0200
committerJeremy Allison <jra@samba.org>2022-06-27 15:50:30 +0000
commitcc8465f1b79e335d9af6a2c2edf128aa5ce07ec0 (patch)
tree45beffeb2a585ec98b7a599e30a42bfc35551d5e /source3/libads
parent5ec9b8ef31727f8f35f1c5309598e59f5d283e1b (diff)
downloadsamba-cc8465f1b79e335d9af6a2c2edf128aa5ce07ec0.tar.gz
s3:libads: Allocate ads->server.ldap_server under ADS_STRUCT talloc context
Signed-off-by: Samuel Cabrero <scabrero@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/libads')
-rw-r--r--source3/libads/ads_struct.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/source3/libads/ads_struct.c b/source3/libads/ads_struct.c
index c7734442699..2d9bc9435fa 100644
--- a/source3/libads/ads_struct.c
+++ b/source3/libads/ads_struct.c
@@ -130,8 +130,6 @@ static void ads_destroy(ADS_STRUCT **ads)
#ifdef HAVE_LDAP
ads_disconnect(*ads);
#endif
- SAFE_FREE((*ads)->server.ldap_server);
-
SAFE_FREE((*ads)->auth.realm);
SAFE_FREE((*ads)->auth.password);
SAFE_FREE((*ads)->auth.user_name);
@@ -190,7 +188,12 @@ ADS_STRUCT *ads_init(TALLOC_CTX *mem_ctx,
return NULL;
}
- ads->server.ldap_server = ldap_server? SMB_STRDUP(ldap_server) : NULL;
+ ads->server.ldap_server = talloc_strdup(ads, ldap_server);
+ if (ldap_server != NULL && ads->server.ldap_server == NULL) {
+ DBG_WARNING("Out of memory\n");
+ TALLOC_FREE(ads);
+ return NULL;
+ }
wrap_flags = lp_client_ldap_sasl_wrapping();
if (wrap_flags == -1) {