]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:libads: Allocate ads->config.ldap_server_name under ADS_STRUCT talloc context
authorSamuel Cabrero <scabrero@samba.org>
Wed, 15 Jun 2022 10:03:56 +0000 (12:03 +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
source3/libads/ldap.c

index 79aa517e1236821c4059fb807c6f1a7172a7d75e..d734d47e653e1d01afebf2ae37d0851eebc29174 100644 (file)
@@ -153,7 +153,6 @@ static void ads_destroy(ADS_STRUCT **ads)
 #ifdef HAVE_LDAP
                ads_disconnect(*ads);
 #endif
-               SAFE_FREE((*ads)->config.ldap_server_name);
                SAFE_FREE((*ads)->config.server_site_name);
                SAFE_FREE((*ads)->config.client_site_name);
                SAFE_FREE((*ads)->config.schema_path);
index a471ac2f07171a087a70f28a136573ef0f99dc63..1693ab1debe674ba94cfbd4a0b4ad3604e66caea 100755 (executable)
@@ -294,7 +294,7 @@ static bool ads_try_connect(ADS_STRUCT *ads, bool gc,
 
        TALLOC_FREE(ads->config.realm);
        TALLOC_FREE(ads->config.bind_path);
-       SAFE_FREE(ads->config.ldap_server_name);
+       TALLOC_FREE(ads->config.ldap_server_name);
        SAFE_FREE(ads->config.server_site_name);
        SAFE_FREE(ads->config.client_site_name);
        TALLOC_FREE(ads->server.workgroup);
@@ -305,7 +305,14 @@ static bool ads_try_connect(ADS_STRUCT *ads, bool gc,
                goto out;
        }
 
-       ads->config.ldap_server_name   = SMB_STRDUP(cldap_reply.pdc_dns_name);
+       ads->config.ldap_server_name = talloc_strdup(ads,
+                                                    cldap_reply.pdc_dns_name);
+       if (ads->config.ldap_server_name == NULL) {
+               DBG_WARNING("Out of memory\n");
+               ret = false;
+               goto out;
+       }
+
        ads->config.realm = talloc_asprintf_strupper_m(ads,
                                                       "%s",
                                                       cldap_reply.dns_domain);