libwbclient: avoid usage talloc_init() in library code
authorStefan Metzmacher <metze@samba.org>
Wed, 3 Dec 2008 08:07:00 +0000 (09:07 +0100)
committerKarolin Seeger <kseeger@samba.org>
Thu, 11 Dec 2008 09:27:14 +0000 (10:27 +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 9c886df89695e2d65fa19a81f38131d78a9a96dd..18516b6a2e45fbc41b9da2c552fc3c3e59220e04 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;
 }