]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:libads: Allocate ads->auth.kdc_server under ADS_STRUCT talloc context
authorSamuel Cabrero <scabrero@suse.de>
Mon, 13 Jun 2022 15:03:01 +0000 (17: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 00134d1a73cac5ccfdce00d71d03087b0fd618cb..e4739d7fd11b2df2bcc5546d150da13d9729a489 100644 (file)
@@ -130,7 +130,6 @@ static void ads_destroy(ADS_STRUCT **ads)
 #ifdef HAVE_LDAP
                ads_disconnect(*ads);
 #endif
-               SAFE_FREE((*ads)->auth.kdc_server);
                SAFE_FREE((*ads)->auth.ccache_name);
 
                SAFE_FREE((*ads)->config.realm);
index 00a3c80c60fee9d8f6cbfe0dc9352634fe741878..5ac5b1b0e1296ce5a57c2594ec6297eece9dfc55 100755 (executable)
@@ -733,7 +733,11 @@ got_connection:
 
        if (!ads->auth.kdc_server) {
                print_sockaddr(addr, sizeof(addr), &ads->ldap.ss);
-               ads->auth.kdc_server = SMB_STRDUP(addr);
+               ads->auth.kdc_server = talloc_strdup(ads, addr);
+               if (ads->auth.kdc_server == NULL) {
+                       status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY);
+                       goto out;
+               }
        }
 
        /* If the caller() requested no LDAP bind, then we are done */