Messages in this thread | | | Date | Mon, 13 May 2024 07:25:56 -0700 | From | Jakub Kicinski <> | 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.
| |