]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
winbindd: Add a missing NULL check in winbindd_list_trusted_domains()
authorVolker Lendecke <vl@samba.org>
Tue, 24 Feb 2026 09:28:12 +0000 (10:28 +0100)
committerVolker Lendecke <vl@samba.org>
Wed, 25 Feb 2026 12:33:39 +0000 (12:33 +0000)
We did not check the result of talloc_asprintf_append_buffer()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>
source3/winbindd/winbindd_misc.c

index 3dbbc2f92fb4b3f4bdd3d138a6faf48a392ac9f8..bf0fedf697048456c57a0160a577ea268e2bd8e0 100644 (file)
@@ -222,9 +222,6 @@ bool winbindd_list_trusted_domains(struct winbindd_cli_state *state)
        }
 
        extra_data = talloc_strdup(state->mem_ctx, "");
-       if (extra_data == NULL) {
-               goto done;
-       }
 
        for ( i = 0; i < num_domains; i++ ) {
                struct winbindd_domain *domain;
@@ -244,21 +241,24 @@ bool winbindd_list_trusted_domains(struct winbindd_cli_state *state)
                        continue;
                }
 
-               extra_data = talloc_asprintf_append_buffer(
-                       extra_data,
-                       "%s\\%s\\%s\\%s\\%s\\%s\\%s\\%s\n",
-                       d->domain_name,
-                       d->dns_name ? d->dns_name : "",
-                       dom_sid_str_buf(&d->sid, &buf),
-                       trust_type,
-                       trust_is_transitive(d) ? "Yes" : "No",
-                       trust_is_inbound(d) ? "Yes" : "No",
-                       trust_is_outbound(d) ? "Yes" : "No",
-                       is_online ? "Online" : "Offline" );
+               talloc_asprintf_addbuf(&extra_data,
+                                      "%s\\%s\\%s\\%s\\%s\\%s\\%s\\%s\n",
+                                      d->domain_name,
+                                      d->dns_name ? d->dns_name : "",
+                                      dom_sid_str_buf(&d->sid, &buf),
+                                      trust_type,
+                                      trust_is_transitive(d) ? "Yes" : "No",
+                                      trust_is_inbound(d) ? "Yes" : "No",
+                                      trust_is_outbound(d) ? "Yes" : "No",
+                                      is_online ? "Online" : "Offline");
 
                TALLOC_FREE(trust_type);
        }
 
+       if (extra_data == NULL) {
+               goto done;
+       }
+
        state->response->data.num_entries = num_domains;
 
        extra_data_len = strlen(extra_data);