]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:libads: Allocate all memory on the talloc stackframe
authorAndreas Schneider <asn@samba.org>
Tue, 15 Mar 2022 11:56:58 +0000 (12:56 +0100)
committerGünther Deschner <gd@samba.org>
Wed, 16 Mar 2022 13:28:30 +0000 (13:28 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15016

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
source3/libads/kerberos.c

index d1c410ffa4b73d257ec471b64aaa28102c2d565e..aadc65a3edce685624b94324049acea9c6dc8795 100644 (file)
@@ -438,7 +438,7 @@ static char *get_kdc_ip_string(char *mem_ctx,
 
        SMB_ASSERT(pss != NULL);
 
-       kdc_str = talloc_asprintf(mem_ctx,
+       kdc_str = talloc_asprintf(frame,
                                  "\t\tkdc = %s\n",
                                  print_canonical_sockaddr_with_port(mem_ctx,
                                                                     pss));
@@ -459,7 +459,7 @@ static char *get_kdc_ip_string(char *mem_ctx,
         */
 
        if (sitename) {
-               status = get_kdc_list(talloc_tos(),
+               status = get_kdc_list(frame,
                                        realm,
                                        sitename,
                                        &ip_sa_site,
@@ -477,7 +477,7 @@ static char *get_kdc_ip_string(char *mem_ctx,
 
        /* Get all KDC's. */
 
-       status = get_kdc_list(talloc_tos(),
+       status = get_kdc_list(frame,
                                        realm,
                                        NULL,
                                        &ip_sa_nonsite,
@@ -589,7 +589,7 @@ static char *get_kdc_ip_string(char *mem_ctx,
                kdc_str = new_kdc_str;
        }
 
-       result = kdc_str;
+       result = talloc_move(mem_ctx, &kdc_str);
 out:
        if (result != NULL) {
                DBG_DEBUG("Returning\n%s\n", kdc_str);
@@ -597,8 +597,6 @@ out:
                DBG_NOTICE("Failed to get KDC ip address\n");
        }
 
-       TALLOC_FREE(ip_sa_site);
-       TALLOC_FREE(ip_sa_nonsite);
        TALLOC_FREE(frame);
        return result;
 }