From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [cel:topic-rpc-with-tls-upcall 1/18] net/handshake/netlink.c:187 handshake_nl_accept_doit() error: uninitialized symbol 'req'.
Date: Mon, 6 Mar 2023 17:55:33 +0800 [thread overview]
Message-ID: <202303061707.ICwrtQsr-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Chuck Lever <chuck.lever@oracle.com>
tree: git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux topic-rpc-with-tls-upcall
head: 88897fb973ffb2448e3452ca4e9283908bd257f6
commit: d166e9ec5e3800de085444eca5883ce1738f6cb3 [1/18] net/handshake: Create a NETLINK service for handling handshake requests
:::::: branch date: 3 days ago
:::::: commit date: 3 days ago
config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20230306/202303061707.ICwrtQsr-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Link: https://lore.kernel.org/r/202303061707.ICwrtQsr-lkp@intel.com/
smatch warnings:
net/handshake/netlink.c:187 handshake_nl_accept_doit() error: uninitialized symbol 'req'.
net/handshake/netlink.c:240 handshake_nl_done_doit() error: uninitialized symbol 'req'.
net/handshake/request.c:193 handshake_complete() warn: test_and_set_bit() takes a bit number
net/handshake/request.c:236 handshake_req_cancel() warn: test_and_set_bit() takes a bit number
vim +/req +187 net/handshake/netlink.c
d166e9ec5e3800 Chuck Lever 2023-02-19 141
d166e9ec5e3800 Chuck Lever 2023-02-19 142 static int handshake_nl_accept_doit(struct sk_buff *skb, struct genl_info *gi)
d166e9ec5e3800 Chuck Lever 2023-02-19 143 {
d166e9ec5e3800 Chuck Lever 2023-02-19 144 struct nlattr *tb[HANDSHAKE_A_ACCEPT_MAX + 1];
d166e9ec5e3800 Chuck Lever 2023-02-19 145 struct net *net = sock_net(skb->sk);
d166e9ec5e3800 Chuck Lever 2023-02-19 146 struct handshake_req *pos, *req;
d166e9ec5e3800 Chuck Lever 2023-02-19 147 int fd, err;
d166e9ec5e3800 Chuck Lever 2023-02-19 148
d166e9ec5e3800 Chuck Lever 2023-02-19 149 err = -EINVAL;
d166e9ec5e3800 Chuck Lever 2023-02-19 150 if (genlmsg_parse(nlmsg_hdr(skb), &handshake_genl_family, tb,
d166e9ec5e3800 Chuck Lever 2023-02-19 151 HANDSHAKE_A_ACCEPT_HANDLER_CLASS,
d166e9ec5e3800 Chuck Lever 2023-02-19 152 handshake_accept_nl_policy, NULL))
d166e9ec5e3800 Chuck Lever 2023-02-19 153 goto out_status;
d166e9ec5e3800 Chuck Lever 2023-02-19 154 if (!tb[HANDSHAKE_A_ACCEPT_HANDLER_CLASS])
d166e9ec5e3800 Chuck Lever 2023-02-19 155 goto out_status;
d166e9ec5e3800 Chuck Lever 2023-02-19 156
d166e9ec5e3800 Chuck Lever 2023-02-19 157 req = NULL;
d166e9ec5e3800 Chuck Lever 2023-02-19 158 spin_lock(&net->hs_lock);
d166e9ec5e3800 Chuck Lever 2023-02-19 159 list_for_each_entry(pos, &net->hs_requests, hr_list) {
d166e9ec5e3800 Chuck Lever 2023-02-19 160 if (pos->hr_proto->hp_handler_class !=
d166e9ec5e3800 Chuck Lever 2023-02-19 161 nla_get_u32(tb[HANDSHAKE_A_ACCEPT_HANDLER_CLASS]))
d166e9ec5e3800 Chuck Lever 2023-02-19 162 continue;
d166e9ec5e3800 Chuck Lever 2023-02-19 163 __remove_pending_locked(net, pos);
d166e9ec5e3800 Chuck Lever 2023-02-19 164 req = pos;
d166e9ec5e3800 Chuck Lever 2023-02-19 165 break;
d166e9ec5e3800 Chuck Lever 2023-02-19 166 }
d166e9ec5e3800 Chuck Lever 2023-02-19 167 spin_unlock(&net->hs_lock);
d166e9ec5e3800 Chuck Lever 2023-02-19 168 if (!req)
d166e9ec5e3800 Chuck Lever 2023-02-19 169 goto out_status;
d166e9ec5e3800 Chuck Lever 2023-02-19 170
d166e9ec5e3800 Chuck Lever 2023-02-19 171 fd = handshake_dup(req->hr_sock);
d166e9ec5e3800 Chuck Lever 2023-02-19 172 if (fd < 0) {
d166e9ec5e3800 Chuck Lever 2023-02-19 173 err = fd;
d166e9ec5e3800 Chuck Lever 2023-02-19 174 goto out_complete;
d166e9ec5e3800 Chuck Lever 2023-02-19 175 }
d166e9ec5e3800 Chuck Lever 2023-02-19 176 err = req->hr_proto->hp_accept(req, gi, fd);
d166e9ec5e3800 Chuck Lever 2023-02-19 177 if (err)
d166e9ec5e3800 Chuck Lever 2023-02-19 178 goto out_complete;
d166e9ec5e3800 Chuck Lever 2023-02-19 179
d166e9ec5e3800 Chuck Lever 2023-02-19 180 trace_handshake_cmd_accept(net, req, req->hr_sock, fd);
d166e9ec5e3800 Chuck Lever 2023-02-19 181 return 0;
d166e9ec5e3800 Chuck Lever 2023-02-19 182
d166e9ec5e3800 Chuck Lever 2023-02-19 183 out_complete:
d166e9ec5e3800 Chuck Lever 2023-02-19 184 handshake_complete(req, -EIO, NULL);
d166e9ec5e3800 Chuck Lever 2023-02-19 185 fput(req->hr_sock->file);
d166e9ec5e3800 Chuck Lever 2023-02-19 186 out_status:
d166e9ec5e3800 Chuck Lever 2023-02-19 @187 trace_handshake_cmd_accept_err(net, req, NULL, err);
d166e9ec5e3800 Chuck Lever 2023-02-19 188 return handshake_status_reply(skb, gi, err);
d166e9ec5e3800 Chuck Lever 2023-02-19 189 }
d166e9ec5e3800 Chuck Lever 2023-02-19 190
d166e9ec5e3800 Chuck Lever 2023-02-19 191 static const struct nla_policy
d166e9ec5e3800 Chuck Lever 2023-02-19 192 handshake_done_nl_policy[HANDSHAKE_A_DONE_MAX + 1] = {
d166e9ec5e3800 Chuck Lever 2023-02-19 193 [HANDSHAKE_A_DONE_SOCKFD] = { .type = NLA_U32, },
d166e9ec5e3800 Chuck Lever 2023-02-19 194 [HANDSHAKE_A_DONE_STATUS] = { .type = NLA_U32, },
d166e9ec5e3800 Chuck Lever 2023-02-19 195 [HANDSHAKE_A_DONE_REMOTE_AUTH] = { .type = NLA_U32, },
d166e9ec5e3800 Chuck Lever 2023-02-19 196 };
d166e9ec5e3800 Chuck Lever 2023-02-19 197
d166e9ec5e3800 Chuck Lever 2023-02-19 198 static int handshake_nl_done_doit(struct sk_buff *skb, struct genl_info *gi)
d166e9ec5e3800 Chuck Lever 2023-02-19 199 {
d166e9ec5e3800 Chuck Lever 2023-02-19 200 struct nlattr *tb[HANDSHAKE_A_DONE_MAX + 1];
d166e9ec5e3800 Chuck Lever 2023-02-19 201 struct net *net = sock_net(skb->sk);
d166e9ec5e3800 Chuck Lever 2023-02-19 202 struct socket *sock = NULL;
d166e9ec5e3800 Chuck Lever 2023-02-19 203 struct handshake_req *req;
d166e9ec5e3800 Chuck Lever 2023-02-19 204 int fd, status, err;
d166e9ec5e3800 Chuck Lever 2023-02-19 205
d166e9ec5e3800 Chuck Lever 2023-02-19 206 err = genlmsg_parse(nlmsg_hdr(skb), &handshake_genl_family, tb,
d166e9ec5e3800 Chuck Lever 2023-02-19 207 HANDSHAKE_A_DONE_MAX, handshake_done_nl_policy,
d166e9ec5e3800 Chuck Lever 2023-02-19 208 NULL);
d166e9ec5e3800 Chuck Lever 2023-02-19 209 if (err || !tb[HANDSHAKE_A_DONE_SOCKFD]) {
d166e9ec5e3800 Chuck Lever 2023-02-19 210 err = -EINVAL;
d166e9ec5e3800 Chuck Lever 2023-02-19 211 goto out_status;
d166e9ec5e3800 Chuck Lever 2023-02-19 212 }
d166e9ec5e3800 Chuck Lever 2023-02-19 213
d166e9ec5e3800 Chuck Lever 2023-02-19 214 fd = nla_get_u32(tb[HANDSHAKE_A_DONE_SOCKFD]);
d166e9ec5e3800 Chuck Lever 2023-02-19 215
d166e9ec5e3800 Chuck Lever 2023-02-19 216 err = 0;
d166e9ec5e3800 Chuck Lever 2023-02-19 217 sock = sockfd_lookup(fd, &err);
d166e9ec5e3800 Chuck Lever 2023-02-19 218 if (err) {
d166e9ec5e3800 Chuck Lever 2023-02-19 219 err = -EBADF;
d166e9ec5e3800 Chuck Lever 2023-02-19 220 goto out_status;
d166e9ec5e3800 Chuck Lever 2023-02-19 221 }
d166e9ec5e3800 Chuck Lever 2023-02-19 222
d166e9ec5e3800 Chuck Lever 2023-02-19 223 req = sock->sk->sk_handshake_req;
d166e9ec5e3800 Chuck Lever 2023-02-19 224 if (!req) {
d166e9ec5e3800 Chuck Lever 2023-02-19 225 err = -EBUSY;
d166e9ec5e3800 Chuck Lever 2023-02-19 226 goto out_status;
d166e9ec5e3800 Chuck Lever 2023-02-19 227 }
d166e9ec5e3800 Chuck Lever 2023-02-19 228
d166e9ec5e3800 Chuck Lever 2023-02-19 229 trace_handshake_cmd_done(net, req, sock, fd);
d166e9ec5e3800 Chuck Lever 2023-02-19 230
d166e9ec5e3800 Chuck Lever 2023-02-19 231 status = -EIO;
d166e9ec5e3800 Chuck Lever 2023-02-19 232 if (tb[HANDSHAKE_A_DONE_STATUS])
d166e9ec5e3800 Chuck Lever 2023-02-19 233 status = nla_get_u32(tb[HANDSHAKE_A_DONE_STATUS]);
d166e9ec5e3800 Chuck Lever 2023-02-19 234
d166e9ec5e3800 Chuck Lever 2023-02-19 235 handshake_complete(req, status, tb);
d166e9ec5e3800 Chuck Lever 2023-02-19 236 fput(sock->file);
d166e9ec5e3800 Chuck Lever 2023-02-19 237 return 0;
d166e9ec5e3800 Chuck Lever 2023-02-19 238
d166e9ec5e3800 Chuck Lever 2023-02-19 239 out_status:
d166e9ec5e3800 Chuck Lever 2023-02-19 @240 trace_handshake_cmd_done_err(net, req, sock, err);
d166e9ec5e3800 Chuck Lever 2023-02-19 241 return 0;
d166e9ec5e3800 Chuck Lever 2023-02-19 242 }
d166e9ec5e3800 Chuck Lever 2023-02-19 243
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
next reply other threads:[~2023-03-06 9:55 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-06 9:55 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-03-06 10:01 [cel:topic-rpc-with-tls-upcall 1/18] net/handshake/netlink.c:187 handshake_nl_accept_doit() error: uninitialized symbol 'req' Dan Carpenter
2023-03-06 15:11 ` Chuck Lever III
2023-03-06 15:17 ` Dan Carpenter
2023-03-06 15:19 ` Chuck Lever III
2023-03-06 15:20 ` Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202303061707.ICwrtQsr-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.