diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2005-11-07 22:51:47 -0500 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2005-11-07 22:51:47 -0500 |
| commit | 6b995751c2e851d2bc9c277b5884d0adb519e31d (patch) | |
| tree | 7a15b41b5d8ce612915584a0773c670d5c0ab5b8 /net/sunrpc/svc.c | |
| parent | 6c2f4267833f453156f8f439cc32eb4c92f357b4 (diff) | |
| parent | d27ba47e7e8c466c18983a1779d611f82d6a354f (diff) | |
Merge branch 'master'
Diffstat (limited to 'net/sunrpc/svc.c')
| -rw-r--r-- | net/sunrpc/svc.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c index e9bd91265f7..5a220b2bb37 100644 --- a/net/sunrpc/svc.c +++ b/net/sunrpc/svc.c @@ -313,6 +313,11 @@ svc_process(struct svc_serv *serv, struct svc_rqst *rqstp) rqstp->rq_proc = proc = ntohl(svc_getu32(argv)); /* procedure number */ progp = serv->sv_program; + + for (progp = serv->sv_program; progp; progp = progp->pg_next) + if (prog == progp->pg_prog) + break; + /* * Decode auth data, and add verifier to reply buffer. * We do this before anything else in order to get a decent @@ -320,7 +325,7 @@ svc_process(struct svc_serv *serv, struct svc_rqst *rqstp) */ auth_res = svc_authenticate(rqstp, &auth_stat); /* Also give the program a chance to reject this call: */ - if (auth_res == SVC_OK) { + if (auth_res == SVC_OK && progp) { auth_stat = rpc_autherr_badcred; auth_res = progp->pg_authenticate(rqstp); } @@ -340,10 +345,7 @@ svc_process(struct svc_serv *serv, struct svc_rqst *rqstp) case SVC_COMPLETE: goto sendit; } - - for (progp = serv->sv_program; progp; progp = progp->pg_next) - if (prog == progp->pg_prog) - break; + if (progp == NULL) goto err_bad_prog; |
