]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:libads: Allocate ads->server.ldap_server under ADS_STRUCT talloc context
authorSamuel Cabrero <scabrero@samba.org>
Fri, 10 Jun 2022 14:55:43 +0000 (16:55 +0200)
committerJeremy Allison <jra@samba.org>
Mon, 27 Jun 2022 15:50:30 +0000 (15:50 +0000)
Signed-off-by: Samuel Cabrero <scabrero@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/libads/ads_struct.c

index c7734442699c0a3c04cf2860579d5f37a6b27572..2d9bc9435fa38769510cd35d4e3be83084984742 100644 (file)
@@ -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) {