s3:libads: Leave early on error in get_kdc_ip_string()
authorAndreas Schneider <asn@samba.org>
Tue, 15 Mar 2022 11:04:34 +0000 (12:04 +0100)
committerJule Anger <janger@samba.org>
Thu, 17 Mar 2022 09:14:56 +0000 (09:14 +0000)
This avoids useless allocations.

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>
(cherry picked from commit 313f03c78487ae49747b8143220ecbfe8ad9310a)

source3/libads/kerberos.c

index 60fe03fd5d76bef7abe1ce2a6dbd7e82c41478b7..1bf149ef09b1a2e3de78ad8f2077ed66b55b5fb3 100644 (file)
@@ -434,9 +434,14 @@ static char *get_kdc_ip_string(char *mem_ctx,
        struct netlogon_samlogon_response **responses = NULL;
        NTSTATUS status;
        bool ok;
-       char *kdc_str = talloc_asprintf(mem_ctx, "%s\t\tkdc = %s\n", "",
-                                       print_canonical_sockaddr_with_port(mem_ctx, pss));
+       char *kdc_str = NULL;
 
+       SMB_ASSERT(pss != NULL);
+
+       kdc_str = talloc_asprintf(mem_ctx,
+                                 "\t\tkdc = %s\n",
+                                 print_canonical_sockaddr_with_port(mem_ctx,
+                                                                    pss));
        if (kdc_str == NULL) {
                TALLOC_FREE(frame);
                return NULL;
@@ -516,15 +521,15 @@ static char *get_kdc_ip_string(char *mem_ctx,
                }
        }
 
-       dc_addrs2 = talloc_zero_array(talloc_tos(),
-                                     struct tsocket_address *,
-                                     num_dcs);
-
        DBG_DEBUG("%zu additional KDCs to test\n", num_dcs);
        if (num_dcs == 0) {
                TALLOC_FREE(kdc_str);
                goto out;
        }
+
+       dc_addrs2 = talloc_zero_array(talloc_tos(),
+                                     struct tsocket_address *,
+                                     num_dcs);
        if (dc_addrs2 == NULL) {
                TALLOC_FREE(kdc_str);
                goto out;