From cdef601150ce29f339f646183dafcd15395c575e Mon Sep 17 00:00:00 2001 From: Samuel Cabrero Date: Fri, 10 Jun 2022 15:04:51 +0200 Subject: [PATCH] s3:libads: Alloc ads->server.realm under ADS_STRUCT talloc context Signed-off-by: Samuel Cabrero Reviewed-by: Jeremy Allison --- source3/libads/ads_struct.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/source3/libads/ads_struct.c b/source3/libads/ads_struct.c index d7000afe06f..7480fb7d1c4 100644 --- a/source3/libads/ads_struct.c +++ b/source3/libads/ads_struct.c @@ -130,7 +130,6 @@ static void ads_destroy(ADS_STRUCT **ads) #ifdef HAVE_LDAP ads_disconnect(*ads); #endif - SAFE_FREE((*ads)->server.realm); SAFE_FREE((*ads)->server.workgroup); SAFE_FREE((*ads)->server.ldap_server); @@ -178,7 +177,13 @@ ADS_STRUCT *ads_init(TALLOC_CTX *mem_ctx, ads_zero_ldap(ads); #endif - ads->server.realm = realm? SMB_STRDUP(realm) : NULL; + ads->server.realm = talloc_strdup(ads, realm); + if (realm != NULL && ads->server.realm == NULL) { + DBG_WARNING("Out of memory\n"); + TALLOC_FREE(ads); + return NULL; + } + ads->server.workgroup = workgroup ? SMB_STRDUP(workgroup) : NULL; ads->server.ldap_server = ldap_server? SMB_STRDUP(ldap_server) : NULL; @@ -223,4 +228,4 @@ bool ads_set_sasl_wrap_flags(ADS_STRUCT *ads, unsigned flags) ads->auth.flags = flags | other_flags; return true; -} \ No newline at end of file +} -- 2.47.3