[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20240513072556.278df9f4@kernel.org>
Date: Mon, 13 May 2024 07:25:56 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: Ryosuke Yasuoka <ryasuoka@...hat.com>
Cc: krzk@...nel.org, davem@...emloft.net, edumazet@...gle.com,
pabeni@...hat.com, horms@...nel.org, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org, syoshida@...hat.com,
syzbot+d7b4dc6cd50410152534@...kaller.appspotmail.com
Subject: Re: [PATCH net v4] nfc: nci: Fix uninit-value in nci_rx_work
On Sat, 11 May 2024 20:02:28 +0900 Ryosuke Yasuoka wrote:
> Sorry I don't get it. Do you mean I just insert
> BUILD_BUG_ON(NCI_CTRL_HDR_SIZE != NCI_DATA_HDR_SIZE) or insert this and
> clean up the code duplication like this? (It is just a draft. I just
> share what I mean.) I can avoid to call nci_valid_size() repeatedly
> inside the switch statement.
>
> static void nci_rx_work(struct work_struct *work)
> {
> ...
> if (!skb->len) {
> kfree_skb(skb);
> kcov_remote_stop();
> break;
> }
>
> BUILD_BUG_ON(NCI_CTRL_HDR_SIZE != NCI_DATA_HDR_SIZE);
> unsigned int hdr_size = NCI_CTRL_HDR_SIZE;
>
> if (!nci_valid_size(skb, hdr_size)) {
> kfree_skb(skb);
> continue;
> }
>
> /* Process frame */
> switch (nci_mt(skb->data)) {
> case NCI_MT_RSP_PKT:
> nci_rsp_packet(ndev, skb);
> break;
>
> case NCI_MT_NTF_PKT:
> nci_ntf_packet(ndev, skb);
> break;
Yes, that's what I meant. I'd probably merge the nci_valid_size()
check with the !skb->len check, too.
Powered by blists - more mailing lists