From: Samuel Cabrero Date: Fri, 10 Jun 2022 13:04:51 +0000 (+0200) Subject: s3:libads: Alloc ads->server.realm under ADS_STRUCT talloc context X-Git-Tag: tevent-0.13.0~241 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cdef601150ce29f339f646183dafcd15395c575e;p=thirdparty%2Fsamba.git s3:libads: Alloc ads->server.realm under ADS_STRUCT talloc context Signed-off-by: Samuel Cabrero Reviewed-by: Jeremy Allison --- 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 +}