[PATCH] svcgss: reply AUTH_BADCRED to RPCSEC_GSS with unkown services

Wei Yongjun
2009-08-04T09:29:56Z

When RPC messages is received with RPCSEC_GSS, and if the RPCSEC_GSS
include unkown services (not RPC_GSS_SVC_NONE, RPC_GSS_SVC_INTEGRITY
and RPC_GSS_SVC_PRIVACY), the response is considered as AUTH_BADCRED
in svcauth_gss_accept(), but the response be drop by
svcauth_gss_release(). I think response with AUTH_BADCRED is correct
one. So this patch fixed it.

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
---
static int
svcauth_gss_accept(struct svc_rqst *rqstp, __be32 *authp)
{
switch (gc->gc_svc) {
case RPC_GSS_SVC_NONE:
...
case RPC_GSS_SVC_INTEGRITY:
...
case RPC_GSS_SVC_PRIVACY:
...
default:
goto auth_err; <-- reply with AUTH_BADCRED
}
...
}

static int
svcauth_gss_release(struct svc_rqst *rqstp)
{
...
switch (gc->gc_svc) {
case RPC_GSS_SVC_NONE:
break;
case RPC_GSS_SVC_INTEGRITY:
...
case RPC_GSS_SVC_PRIVACY:
...
default:
goto out_err; <--- will drop it
}
...
}
---
net/sunrpc/auth_gss/svcauth_gss.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c
index 2278a50..6dce327 100644
--- a/net/sunrpc/auth_gss/svcauth_gss.c
+++ b/net/sunrpc/auth_gss/svcauth_gss.c
@@ -1370,7 +1370,7 @@ svcauth_gss_release(struct svc_rqst *rqstp)
goto out_err;
break;
default:
- goto out_err;
+ goto out;
}

out:
--
1.6.2.2