SUNRPC: Fix up an error return value in gss_import_sec_context_kerberos()
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 18 Dec 2009 21:28:05 +0000 (16:28 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 18 Dec 2009 21:28:05 +0000 (16:28 -0500)
If the context allocation fails, the function currently returns a random
error code, since the variable 'p' still points to a valid memory location.

Ensure that it returns ENOMEM...

Cc: stable@kernel.org
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/auth_gss/gss_krb5_mech.c

index ef45eba22485cf355c8fdd17382943d7ff7ec602..2deb0ed72ff4ed7823a1fc22118c3ea46f0d7232 100644 (file)
@@ -131,8 +131,10 @@ gss_import_sec_context_kerberos(const void *p,
        struct  krb5_ctx *ctx;
        int tmp;
 
-       if (!(ctx = kzalloc(sizeof(*ctx), GFP_NOFS)))
+       if (!(ctx = kzalloc(sizeof(*ctx), GFP_NOFS))) {
+               p = ERR_PTR(-ENOMEM);
                goto out_err;
+       }
 
        p = simple_get_bytes(p, end, &ctx->initiate, sizeof(ctx->initiate));
        if (IS_ERR(p))