CC: [email protected]
CC: [email protected]
TO: Chuck Lever <[email protected]>

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux 
topic-rpc-with-tls
head:   b2635ca75c1014803ce82f7cbbcc09a111852e0a
commit: b2635ca75c1014803ce82f7cbbcc09a111852e0a [9999/9999] SUNRPC: Teach 
server to recognize RPC_AUTH_TLS
:::::: branch date: 31 hours ago
:::::: commit date: 31 hours ago
config: x86_64-randconfig-m001 
(https://download.01.org/0day-ci/archive/20220218/[email protected]/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

New smatch warnings:
net/sunrpc/svcauth_unix.c:814 svcauth_tls_accept() warn: was && intended here 
instead of ||?

Old smatch warnings:
net/sunrpc/svcauth_unix.c:721 svcauth_unix_set_client() warn: passing zero to 
'PTR_ERR'
net/sunrpc/svcauth_unix.c:752 svcauth_null_accept() warn: was && intended here 
instead of ||?
net/sunrpc/svcauth_unix.c:898 svcauth_unix_accept() warn: was && intended here 
instead of ||?

vim +814 net/sunrpc/svcauth_unix.c

^1da177e4c3f415 Linus Torvalds 2005-04-16  795  
^1da177e4c3f415 Linus Torvalds 2005-04-16  796  
b2635ca75c10148 Chuck Lever    2021-08-05  797  static int
b2635ca75c10148 Chuck Lever    2021-08-05  798  svcauth_tls_accept(struct 
svc_rqst *rqstp, __be32 *authp)
b2635ca75c10148 Chuck Lever    2021-08-05  799  {
b2635ca75c10148 Chuck Lever    2021-08-05  800          struct svc_cred *cred = 
&rqstp->rq_cred;
b2635ca75c10148 Chuck Lever    2021-08-05  801          struct kvec *argv = 
rqstp->rq_arg.head;
b2635ca75c10148 Chuck Lever    2021-08-05  802          struct kvec *resv = 
rqstp->rq_res.head;
b2635ca75c10148 Chuck Lever    2021-08-05  803  
b2635ca75c10148 Chuck Lever    2021-08-05  804          if (argv->iov_len < 
XDR_UNIT * 3)
b2635ca75c10148 Chuck Lever    2021-08-05  805                  return 
SVC_GARBAGE;
b2635ca75c10148 Chuck Lever    2021-08-05  806  
b2635ca75c10148 Chuck Lever    2021-08-05  807          /* Call's cred length */
b2635ca75c10148 Chuck Lever    2021-08-05  808          if (svc_getu32(argv) != 
xdr_zero) {
b2635ca75c10148 Chuck Lever    2021-08-05  809                  *authp = 
rpc_autherr_badcred;
b2635ca75c10148 Chuck Lever    2021-08-05  810                  return 
SVC_DENIED;
b2635ca75c10148 Chuck Lever    2021-08-05  811          }
b2635ca75c10148 Chuck Lever    2021-08-05  812  
b2635ca75c10148 Chuck Lever    2021-08-05  813          /* Call's verifier 
flavor and its length */
b2635ca75c10148 Chuck Lever    2021-08-05 @814          if (svc_getu32(argv) != 
rpc_auth_null ||
b2635ca75c10148 Chuck Lever    2021-08-05  815              svc_getu32(argv) != 
xdr_zero) {
b2635ca75c10148 Chuck Lever    2021-08-05  816                  *authp = 
rpc_autherr_badverf;
b2635ca75c10148 Chuck Lever    2021-08-05  817                  return 
SVC_DENIED;
b2635ca75c10148 Chuck Lever    2021-08-05  818          }
b2635ca75c10148 Chuck Lever    2021-08-05  819  
b2635ca75c10148 Chuck Lever    2021-08-05  820          /* AUTH_TLS is not 
valid on non-NULL procedures */
b2635ca75c10148 Chuck Lever    2021-08-05  821          if (rqstp->rq_proc != 
0) {
b2635ca75c10148 Chuck Lever    2021-08-05  822                  *authp = 
rpc_autherr_badcred;
b2635ca75c10148 Chuck Lever    2021-08-05  823                  return 
SVC_DENIED;
b2635ca75c10148 Chuck Lever    2021-08-05  824          }
b2635ca75c10148 Chuck Lever    2021-08-05  825  
b2635ca75c10148 Chuck Lever    2021-08-05  826          /* Mapping to nobody 
uid/gid is required */
b2635ca75c10148 Chuck Lever    2021-08-05  827          cred->cr_uid = 
INVALID_UID;
b2635ca75c10148 Chuck Lever    2021-08-05  828          cred->cr_gid = 
INVALID_GID;
b2635ca75c10148 Chuck Lever    2021-08-05  829          cred->cr_group_info = 
groups_alloc(0);
b2635ca75c10148 Chuck Lever    2021-08-05  830          if (cred->cr_group_info 
== NULL)
b2635ca75c10148 Chuck Lever    2021-08-05  831                  return 
SVC_CLOSE; /* kmalloc failure - client must retry */
b2635ca75c10148 Chuck Lever    2021-08-05  832  
b2635ca75c10148 Chuck Lever    2021-08-05  833          /* Reply's verifier */
b2635ca75c10148 Chuck Lever    2021-08-05  834          svc_putnl(resv, 
RPC_AUTH_NULL);
b2635ca75c10148 Chuck Lever    2021-08-05  835          if 
(rqstp->rq_xprt->xpt_ops->xpo_start_tls) {
b2635ca75c10148 Chuck Lever    2021-08-05  836                  svc_putnl(resv, 
8);
b2635ca75c10148 Chuck Lever    2021-08-05  837                  
memcpy(resv->iov_base + resv->iov_len, "STARTTLS", 8);
b2635ca75c10148 Chuck Lever    2021-08-05  838                  resv->iov_len 
+= 8;
b2635ca75c10148 Chuck Lever    2021-08-05  839          } else
b2635ca75c10148 Chuck Lever    2021-08-05  840                  svc_putnl(resv, 
0);
b2635ca75c10148 Chuck Lever    2021-08-05  841  
b2635ca75c10148 Chuck Lever    2021-08-05  842          
rqstp->rq_cred.cr_flavor = RPC_AUTH_TLS;
b2635ca75c10148 Chuck Lever    2021-08-05  843          return SVC_OK;
b2635ca75c10148 Chuck Lever    2021-08-05  844  }
b2635ca75c10148 Chuck Lever    2021-08-05  845  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to