lib/addns: clang: Fix 'Assigned value is garbage or undefined'
authorNoel Power <noel.power@suse.com>
Tue, 9 Jul 2019 15:06:30 +0000 (15:06 +0000)
committerGary Lockyer <gary@samba.org>
Wed, 24 Jul 2019 21:33:21 +0000 (21:33 +0000)
Fixes:

lib/addns/dnsquery.c:222:10: warning: Assigned value is garbage or undefined <--[clang]
        *numdcs = num_srvs;     /* size_t->int */
                ^
1 warning generated.

Also fixes the out param being modified even on failure

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
lib/addns/dnsquery.c

index 87ae97e3d0ba6ab53f65bc63e1e798853bf36a63..90e4de9a0534a19a47cec779d1ed7bea018b148f 100644 (file)
@@ -205,7 +205,7 @@ NTSTATUS ads_dns_lookup_srv(TALLOC_CTX *ctx,
        struct tevent_context *ev;
        struct tevent_req *req;
        NTSTATUS status = NT_STATUS_NO_MEMORY;
-       size_t num_srvs;
+       size_t num_srvs = 0;
 
        ev = samba_tevent_context_init(ctx);
        if (ev == NULL) {
@@ -219,7 +219,9 @@ NTSTATUS ads_dns_lookup_srv(TALLOC_CTX *ctx,
                goto fail;
        }
        status = ads_dns_lookup_srv_recv(req, ctx, dclist, &num_srvs);
-       *numdcs = num_srvs;     /* size_t->int */
+       if (NT_STATUS_IS_OK(status)) {
+               *numdcs = num_srvs;     /* size_t->int */
+       }
 fail:
        TALLOC_FREE(ev);
        return status;