]> git.hungrycats.org Git - linux/commitdiff
RPCSEC_GSS: Instead of having gss_get_mic allocate memory for
authorTrond Myklebust <trond.myklebust@fys.uio.no>
Sat, 7 Feb 2004 15:35:27 +0000 (16:35 +0100)
committerTrond Myklebust <trond.myklebust@fys.uio.no>
Sat, 7 Feb 2004 15:35:27 +0000 (16:35 +0100)
the mic, require the caller to pass an output buffer whose data
pointer already points to preallocated memory.

net/sunrpc/auth_gss/auth_gss.c
net/sunrpc/auth_gss/gss_krb5_seal.c

index 3e014068e5ae8ee040a2c4fb87da594104670447..61618c6bed5e68e63bf4060df28310c1e7432308 100644 (file)
@@ -711,6 +711,7 @@ gss_marshal(struct rpc_task *task, u32 *p, int ruid)
        /* set verifier flavor*/
        *p++ = htonl(RPC_AUTH_GSS);
 
+       bufout.data = (u8 *)(p + 1);
        maj_stat = gss_get_mic(ctx->gc_gss_ctx,
                               GSS_C_QOP_DEFAULT, 
                               &bufin, &bufout);
@@ -719,9 +720,9 @@ gss_marshal(struct rpc_task *task, u32 *p, int ruid)
                       maj_stat);
                goto out_put_ctx;
        }
-       p = xdr_encode_netobj(p, &bufout);
+       *p++ = htonl(bufout.len);
+       p += XDR_QUADLEN(bufout.len);
        gss_put_ctx(ctx);
-       kfree(bufout.data);
        return p;
 out_put_ctx:
        gss_put_ctx(ctx);
index e664d3ea98ce53a6ed5f0f45714ccc463d7becdd..eaf19d7c8e258cdc86b710d25c6fc62f15d472f5 100644 (file)
@@ -93,8 +93,6 @@ krb5_make_token(struct krb5_ctx *ctx, int qop_req,
 
        now = jiffies;
 
-       token->data = NULL;
-
        if (qop_req != 0)
                goto out_err;
 
@@ -122,8 +120,6 @@ krb5_make_token(struct krb5_ctx *ctx, int qop_req,
        }
 
        token->len = g_token_size(&ctx->mech_used, 22 + tmsglen);
-       if ((token->data = kmalloc(token->len, GFP_KERNEL)) == NULL)
-               goto out_err;
 
        ptr = token->data;
        g_make_token_header(&ctx->mech_used, 22 + tmsglen, &ptr, toktype);