diff mbox series

[net] nfc: nci: Fix handling of zero-length payload packets in nci_rx_work()

Message ID 20240515151757.457353-1-ryasuoka@redhat.com (mailing list archive)
State Superseded
Delegated to: Netdev Maintainers
Headers show
Series [net] nfc: nci: Fix handling of zero-length payload packets in nci_rx_work() | expand

Checks

Context Check Description
netdev/series_format success Single patches do not need cover letters
netdev/tree_selection success Clearly marked for net
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag present in non-next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 926 this patch: 926
netdev/build_tools success No tools touched, skip
netdev/cc_maintainers fail 1 blamed authors not CCed: jeremy@jcline.org; 1 maintainers not CCed: jeremy@jcline.org
netdev/build_clang success Errors and warnings before: 936 this patch: 936
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 937 this patch: 937
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 9 lines checked
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 3 this patch: 3
netdev/source_inline success Was 0 now: 0
netdev/contest success net-next-2024-05-17--00-00 (tests: 1034)

Commit Message

Ryosuke Yasuoka May 15, 2024, 3:17 p.m. UTC
When nci_rx_work() receives a zero-length payload packet, it should
discard the packet without exiting the loop. Instead, it should continue
processing subsequent packets.

Fixes: d24b03535e5e ("nfc: nci: Fix uninit-value in nci_dev_up and nci_ntf_packet")
Closes: https://lore.kernel.org/lkml/20240428134525.GW516117@kernel.org/T/
Reported-by: Ryosuke Yasuoka <ryasuoka@redhat.com>
Signed-off-by: Ryosuke Yasuoka <ryasuoka@redhat.com>
---
 net/nfc/nci/core.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Simon Horman May 16, 2024, 8:43 a.m. UTC | #1
Hi Yasuoka-san,

On Thu, May 16, 2024 at 12:17:07AM +0900, Ryosuke Yasuoka wrote:
> When nci_rx_work() receives a zero-length payload packet, it should
> discard the packet without exiting the loop. Instead, it should continue
> processing subsequent packets.

nit: I think it would be clearer to say:

... it should not discard the packet and exit the loop. Instead, ...

> 
> Fixes: d24b03535e5e ("nfc: nci: Fix uninit-value in nci_dev_up and nci_ntf_packet")
> Closes: https://lore.kernel.org/lkml/20240428134525.GW516117@kernel.org/T/

nit: I'm not sure this Closes link is adding much,
     there are more changes coming, right?

> Reported-by: Ryosuke Yasuoka <ryasuoka@redhat.com>
> Signed-off-by: Ryosuke Yasuoka <ryasuoka@redhat.com>
> ---
>  net/nfc/nci/core.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/net/nfc/nci/core.c b/net/nfc/nci/core.c
> index b133dc55304c..f2ae8b0d81b9 100644
> --- a/net/nfc/nci/core.c
> +++ b/net/nfc/nci/core.c
> @@ -1518,8 +1518,7 @@ static void nci_rx_work(struct work_struct *work)
>  
>  		if (!nci_plen(skb->data)) {
>  			kfree_skb(skb);
> -			kcov_remote_stop();
> -			break;
> +			continue;
>  		}
>  
>  		/* Process frame */
> -- 
> 2.44.0
> 
>
Ryosuke Yasuoka May 16, 2024, 9:24 a.m. UTC | #2
Thank you for your review and comment, Simon.

On Thu, May 16, 2024 at 09:43:48AM +0100, Simon Horman wrote:
> Hi Yasuoka-san,
> 
> On Thu, May 16, 2024 at 12:17:07AM +0900, Ryosuke Yasuoka wrote:
> > When nci_rx_work() receives a zero-length payload packet, it should
> > discard the packet without exiting the loop. Instead, it should continue
> > processing subsequent packets.
> 
> nit: I think it would be clearer to say:
> 
> ... it should not discard the packet and exit the loop. Instead, ...

Great. I'll update commit msg like this.

> > 
> > Fixes: d24b03535e5e ("nfc: nci: Fix uninit-value in nci_dev_up and nci_ntf_packet")
> > Closes: https://lore.kernel.org/lkml/20240428134525.GW516117@kernel.org/T/
> 
> nit: I'm not sure this Closes link is adding much,
>      there are more changes coming, right?

No. I just wanna show the URL link as a reference where this bug is
found. This URL discuss a little bit different topic as you know.

In the following discussion [1], Jakub pointed out that changing
continue statement to break is not related to the patch "Fix
uninit-value in nci_rw_work". So I posted this new small patch before
posting v5 patch for "Fix: uninit-value in nci_rw_work".

If Closes tag is not appropriate, I can remove this in this v2 patch.
What do you think?

[1] https://lore.kernel.org/all/20240510190613.72838bf0@kernel.org/

> > Reported-by: Ryosuke Yasuoka <ryasuoka@redhat.com>
> > Signed-off-by: Ryosuke Yasuoka <ryasuoka@redhat.com>
> > ---
> >  net/nfc/nci/core.c | 3 +--
> >  1 file changed, 1 insertion(+), 2 deletions(-)
> > 
> > diff --git a/net/nfc/nci/core.c b/net/nfc/nci/core.c
> > index b133dc55304c..f2ae8b0d81b9 100644
> > --- a/net/nfc/nci/core.c
> > +++ b/net/nfc/nci/core.c
> > @@ -1518,8 +1518,7 @@ static void nci_rx_work(struct work_struct *work)
> >  
> >  		if (!nci_plen(skb->data)) {
> >  			kfree_skb(skb);
> > -			kcov_remote_stop();
> > -			break;
> > +			continue;
> >  		}
> >  
> >  		/* Process frame */
> > -- 
> > 2.44.0
> > 
> > 
> 

Thank you for your help.
Ryosuke
Simon Horman May 16, 2024, 12:03 p.m. UTC | #3
On Thu, May 16, 2024 at 06:24:54PM +0900, Ryosuke Yasuoka wrote:
> Thank you for your review and comment, Simon.
> 
> On Thu, May 16, 2024 at 09:43:48AM +0100, Simon Horman wrote:
> > Hi Yasuoka-san,
> > 
> > On Thu, May 16, 2024 at 12:17:07AM +0900, Ryosuke Yasuoka wrote:
> > > When nci_rx_work() receives a zero-length payload packet, it should
> > > discard the packet without exiting the loop. Instead, it should continue
> > > processing subsequent packets.
> > 
> > nit: I think it would be clearer to say:
> > 
> > ... it should not discard the packet and exit the loop. Instead, ...
> 
> Great. I'll update commit msg like this.
> 
> > > 
> > > Fixes: d24b03535e5e ("nfc: nci: Fix uninit-value in nci_dev_up and nci_ntf_packet")
> > > Closes: https://lore.kernel.org/lkml/20240428134525.GW516117@kernel.org/T/
> > 
> > nit: I'm not sure this Closes link is adding much,
> >      there are more changes coming, right?
> 
> No. I just wanna show the URL link as a reference where this bug is
> found. This URL discuss a little bit different topic as you know.
> 
> In the following discussion [1], Jakub pointed out that changing
> continue statement to break is not related to the patch "Fix
> uninit-value in nci_rw_work". So I posted this new small patch before
> posting v5 patch for "Fix: uninit-value in nci_rw_work".
> 
> If Closes tag is not appropriate, I can remove this in this v2 patch.
> What do you think?

Thanks, if it was me I would drop the Closes tag.

> [1] https://lore.kernel.org/all/20240510190613.72838bf0@kernel.org/

...
Shigeru Yoshida May 16, 2024, 3:43 p.m. UTC | #4
Hi Yasuoka-san,

On Thu, 16 May 2024 18:24:54 +0900, Ryosuke Yasuoka wrote:
> Thank you for your review and comment, Simon.
> 
> On Thu, May 16, 2024 at 09:43:48AM +0100, Simon Horman wrote:
>> Hi Yasuoka-san,
>> 
>> On Thu, May 16, 2024 at 12:17:07AM +0900, Ryosuke Yasuoka wrote:
>> > When nci_rx_work() receives a zero-length payload packet, it should
>> > discard the packet without exiting the loop. Instead, it should continue
>> > processing subsequent packets.
>> 
>> nit: I think it would be clearer to say:
>> 
>> ... it should not discard the packet and exit the loop. Instead, ...
> 
> Great. I'll update commit msg like this.
> 
>> > 
>> > Fixes: d24b03535e5e ("nfc: nci: Fix uninit-value in nci_dev_up and nci_ntf_packet")
>> > Closes: https://lore.kernel.org/lkml/20240428134525.GW516117@kernel.org/T/
>> 
>> nit: I'm not sure this Closes link is adding much,
>>      there are more changes coming, right?
> 
> No. I just wanna show the URL link as a reference where this bug is
> found. This URL discuss a little bit different topic as you know.
> 
> In the following discussion [1], Jakub pointed out that changing
> continue statement to break is not related to the patch "Fix
> uninit-value in nci_rw_work". So I posted this new small patch before
> posting v5 patch for "Fix: uninit-value in nci_rw_work".
> 
> If Closes tag is not appropriate, I can remove this in this v2 patch.
> What do you think?

I think this patch, continuing the loop after freeing skb, came from
the following discussion:

https://lore.kernel.org/lkml/Zi-vGH1ROjiv1yJ2@zeus/

In such a case, you can use Link: tag with the above URL and mention
it in the change log like "As discussed [1], ...". But this patch
small and clear, so I think the current change log is enough to convey
the intent of the changes without external link.

You may find the following document helpful:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.9#n115

Thanks,
Shigeru

> 
> [1] https://lore.kernel.org/all/20240510190613.72838bf0@kernel.org/
> 
>> > Reported-by: Ryosuke Yasuoka <ryasuoka@redhat.com>
>> > Signed-off-by: Ryosuke Yasuoka <ryasuoka@redhat.com>
>> > ---
>> >  net/nfc/nci/core.c | 3 +--
>> >  1 file changed, 1 insertion(+), 2 deletions(-)
>> > 
>> > diff --git a/net/nfc/nci/core.c b/net/nfc/nci/core.c
>> > index b133dc55304c..f2ae8b0d81b9 100644
>> > --- a/net/nfc/nci/core.c
>> > +++ b/net/nfc/nci/core.c
>> > @@ -1518,8 +1518,7 @@ static void nci_rx_work(struct work_struct *work)
>> >  
>> >  		if (!nci_plen(skb->data)) {
>> >  			kfree_skb(skb);
>> > -			kcov_remote_stop();
>> > -			break;
>> > +			continue;
>> >  		}
>> >  
>> >  		/* Process frame */
>> > -- 
>> > 2.44.0
>> > 
>> > 
>> 
> 
> Thank you for your help.
> Ryosuke
> 
>
diff mbox series

Patch

diff --git a/net/nfc/nci/core.c b/net/nfc/nci/core.c
index b133dc55304c..f2ae8b0d81b9 100644
--- a/net/nfc/nci/core.c
+++ b/net/nfc/nci/core.c
@@ -1518,8 +1518,7 @@  static void nci_rx_work(struct work_struct *work)
 
 		if (!nci_plen(skb->data)) {
 			kfree_skb(skb);
-			kcov_remote_stop();
-			break;
+			continue;
 		}
 
 		/* Process frame */