libwbclient: avoid usage talloc_init() in library code
authorStefan Metzmacher <metze@samba.org>
Wed, 3 Dec 2008 08:07:00 +0000 (09:07 +0100)
committerStefan Metzmacher <metze@samba.org>
Wed, 3 Dec 2008 10:16:27 +0000 (11:16 +0100)
talloc_init() is a compat function for the old samba3
non-hierachical talloc implementation. It enables
the talloc null tracking which should never be done
by library code.

metze
(cherry picked from commit afa0d6b0b14e0ef2293bd8468ffc1d6330abdb5b)
(cherry picked from commit 37a92ed0eb2c8cf7f3eac1d90ba5300cbce45186)

source/nsswitch/libwbclient/wbc_sid.c

index ca5eab4ea3227d27da477c44057a5c271e4b01cb..4c6b0397a46bbefd61511069be842be07a0021fb 100644 (file)
@@ -40,22 +40,18 @@ wbcErr wbcSidToString(const struct wbcDomainSid *sid,
        uint32_t id_auth;
        int i;
        char *tmp = NULL;
-       TALLOC_CTX *ctx = NULL;
 
        if (!sid) {
                wbc_status = WBC_ERR_INVALID_SID;
                BAIL_ON_WBC_ERROR(wbc_status);
        }
 
-       ctx = talloc_init("wbcSidToString");
-       BAIL_ON_PTR_ERROR(ctx, wbc_status);
-
        id_auth = sid->id_auth[5] +
                (sid->id_auth[4] << 8) +
                (sid->id_auth[3] << 16) +
                (sid->id_auth[2] << 24);
 
-       tmp = talloc_asprintf(ctx, "S-%d-%d", sid->sid_rev_num, id_auth);
+       tmp = talloc_asprintf(NULL, "S-%d-%d", sid->sid_rev_num, id_auth);
        BAIL_ON_PTR_ERROR(tmp, wbc_status);
 
        for (i=0; i<sid->num_auths; i++) {
@@ -66,13 +62,13 @@ wbcErr wbcSidToString(const struct wbcDomainSid *sid,
                tmp = tmp2;
        }
 
-       *sid_string=talloc_strdup(NULL, tmp);
-       BAIL_ON_PTR_ERROR((*sid_string), wbc_status);
+       *sid_string = tmp;
+       tmp = NULL;
 
        wbc_status = WBC_ERR_SUCCESS;
 
 done:
-       talloc_free(ctx);
+       talloc_free(tmp);
 
        return wbc_status;
 }