Re: linux-next: manual merge of the nfc tree with the nfc-fixes tree

"Zhou, Yun" <[email protected]> Fri, 24 Jul 2026 11:18:47 +0800
Newsgroups org.kernel.vger.linux-next,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Hi Mark, David,

My patch (1d5fcb66b07a3) [1] was applied to the nfc tree on Jun 2, 
nearly a month before Samuel's (075f88b7d3b5c, Jun 24) [2] . They fix 
the same bug.

But Samuel's v2 still has issues that I addressed during my v1 [3] --> 
v3 iteration:
1. Error response handling: his patch requires sizeof(*rsp_1) before
reading the status field. A valid NCI error response may only contain
a 1-byte status — his code returns SYNTAX_ERROR instead of propagating
the device's actual error code. I fixed this in v2 [4] by checking 1 
byte first, then requiring the full header only after status == OK.

2. ndev state corruption: Simon flagged that if the length check fails
after ndev fields are partially updated, it leaves ndev in an
inconsistent state. My v3 defers all ndev updates until after
validation passes.

[1] 
https://lore.kernel.org/all/[email protected]/T/
[2] https://lore.kernel.org/all/[email protected]/
[3] 
https://lore.kernel.org/all/[email protected]/T/
[4] 
https://lore.kernel.org/all/[email protected]/T/

Was there something wrong with my version, or was it just a mechanical 
conflict resolution?

Thanks,
Yun

On 6/29/2026 9:15 PM, Mark Brown wrote:
> Hi all,
> 
> Today's linux-next merge of the nfc tree got a conflict in:
> 
>    net/nfc/nci/rsp.c
> 
> between commit:
> 
>    075f88b7d3b5c ("nfc: nci: fix uninit-value in nci_core_init_rsp_packet()")
> 
> from the nfc-fixes tree and commit:
> 
>    1d5fcb66b07a3 ("nfc: nci: fix use of uninitialized memory in CORE_INIT_RSP parsing")
> 
> from the nfc tree.
> 
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging.  You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
> 
> diff --cc net/nfc/nci/rsp.c
> index 6b2fa6bdbd14b,85c3ff2b78cd9..0000000000000
> --- a/net/nfc/nci/rsp.c
> +++ b/net/nfc/nci/rsp.c
> @@@ -50,7 -50,8 +50,8 @@@ static u8 nci_core_init_rsp_packet_v1(s
>    	const struct nci_core_init_rsp_1 *rsp_1 = (void *)skb->data;
>    	const struct nci_core_init_rsp_2 *rsp_2;
>    
> + 	/* Ensure that the status field can be accessed. */
>   -	if (skb_headlen(skb) < 1)
>   +	if (skb->len < sizeof(*rsp_1))
>    		return NCI_STATUS_SYNTAX_ERROR;
>    
>    	pr_debug("status 0x%x\n", rsp_1->status);