spnego.c: make sure to free talloc contexts
authorJeff Layton <jlayton@redhat.com>
Tue, 16 Feb 2010 20:33:40 +0000 (15:33 -0500)
committerJeff Layton <jlayton@redhat.com>
Tue, 16 Feb 2010 20:33:40 +0000 (15:33 -0500)
We're using talloc_init to get a context in these functions but they
aren't freeing them.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
spnego.c

index 806da2e3c56f838ad0e46edf03adb882b32145e4..7f32d7d2efa9c8e2cb22dcb16da4d3b5ea90632c 100644 (file)
--- a/spnego.c
+++ b/spnego.c
@@ -34,8 +34,9 @@ DATA_BLOB spnego_gen_krb5_wrap(const DATA_BLOB ticket, const uint8_t tok_id[2])
 {
        ASN1_DATA *data;
        DATA_BLOB ret;
+       TALLOC_CTX *mem_ctx = talloc_init("gssapi");
 
-       data = asn1_init(talloc_init("gssapi"));
+       data = asn1_init(mem_ctx);
        if (data == NULL) {
                return data_blob_null;
        }
@@ -55,6 +56,7 @@ DATA_BLOB spnego_gen_krb5_wrap(const DATA_BLOB ticket, const uint8_t tok_id[2])
 
        ret = data_blob(data->data, data->length);
        asn1_free(data);
+       talloc_free(mem_ctx);
 
        return ret;
 }
@@ -70,8 +72,9 @@ DATA_BLOB gen_negTokenInit(const char *OID, DATA_BLOB blob)
 {
        ASN1_DATA *data;
        DATA_BLOB ret;
+       TALLOC_CTX *mem_ctx = talloc_init("spnego");
 
-       data = asn1_init(talloc_init("spnego"));
+       data = asn1_init(mem_ctx);
        if (data == NULL) {
                return data_blob_null;
        }
@@ -104,6 +107,7 @@ DATA_BLOB gen_negTokenInit(const char *OID, DATA_BLOB blob)
 
        ret = data_blob(data->data, data->length);
        asn1_free(data);
+       talloc_free(mem_ctx);
 
        return ret;
 }