diff options
author | Wei Yongjun <yjwei@cn.fujitsu.com> | 2009-08-04 17:27:52 +0800 |
---|---|---|
committer | J. Bruce Fields <bfields@citi.umich.edu> | 2009-08-25 17:39:43 -0400 |
commit | eac81736e6884484ebb45f8d0cba639f3285382b (patch) | |
tree | 6a85f84718c22542a51b0df9939965c4d46c23a4 /net | |
parent | ed2d8aed52212610d4cb79be3cbf535b04be38dc (diff) | |
download | kernel-crypto-eac81736e6884484ebb45f8d0cba639f3285382b.tar.gz kernel-crypto-eac81736e6884484ebb45f8d0cba639f3285382b.tar.xz kernel-crypto-eac81736e6884484ebb45f8d0cba639f3285382b.zip |
sunrpc: reply AUTH_BADCRED to RPCSEC_GSS with unknown service
When an RPC message is received with RPCSEC_GSS with an unknown service
(not RPC_GSS_SVC_NONE, RPC_GSS_SVC_INTEGRITY, or RPC_GSS_SVC_PRIVACY),
svcauth_gss_accept() returns AUTH_BADCRED, but svcauth_gss_release()
subsequently drops the response entirely, discarding the error.
Fix that so the AUTH_BADCRED error is returned to the client.
Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Diffstat (limited to 'net')
-rw-r--r-- | net/sunrpc/auth_gss/svcauth_gss.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c index 2e6a148d277..f6c51e562a0 100644 --- a/net/sunrpc/auth_gss/svcauth_gss.c +++ b/net/sunrpc/auth_gss/svcauth_gss.c @@ -1374,8 +1374,10 @@ svcauth_gss_release(struct svc_rqst *rqstp) if (stat) goto out_err; break; - default: - goto out_err; + /* + * For any other gc_svc value, svcauth_gss_accept() already set + * the auth_error appropriately; just fall through: + */ } out: |