Subject: Re: [PATCH] nfc: nci: assert requested protocol is valid

From: Simon Horman <[email-masked]>
Date: Thu, 7 Sep 2023 16:41:12 +0200

Cc "John W. Linville" <[email-masked]>
   Ilan Elias <[email-masked]>
   Dmitry Vyukov <[email-masked]>
   Lin Ma <[email-masked]>

On Wed, Sep 06, 2023 at 07:33:47PM -0400, Jeremy Cline wrote:
> The protocol is used in a bit mask to determine if the protocol is
> supported. Assert the provided protocol is less than the maximum
> defined so it doesn't potentially perform a shift-out-of-bounds and
> provide a clearer error for undefined protocols vs unsupported ones.
> 
> Fixes: 6a2968aaf50c ("NFC: basic NCI protocol implementation")
> Reported-and-tested-by: [email-masked]
> Closes: https://syzkaller.appspot.com/bug?extid=0839b78e119aae1fec78
> Signed-off-by: Jeremy Cline <[email-masked]>

Hi Jeremy,

As a bug fix, with a Fixes tag, I'm assuming that this targets 'net'.
As opposed to 'net-next'.

There is probably no need to repost for this, but in future please
bear in mind the practice of specifying the target tree in
the subject of Networking patches.

   Subject: [PATCH net] ...

Also, please include addresses indicated by the following in the CC list.

   get_maintainer.pl --min-percent 25 x.patch

The above notwithstanding, this looks good to me.

Reviewed-by: Simon Horman <[email-masked]>

> ---
>  net/nfc/nci/core.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/net/nfc/nci/core.c b/net/nfc/nci/core.c
> index fff755dde30d..6c9592d05120 100644
> --- a/net/nfc/nci/core.c
> +++ b/net/nfc/nci/core.c
> @@ -909,6 +909,11 @@ static int nci_activate_target(struct nfc_dev *nfc_dev,
>  		return -EINVAL;
>  	}
>  
> +	if (protocol >= NFC_PROTO_MAX) {
> +		pr_err("the requested nfc protocol is invalid\n");
> +		return -EINVAL;
> +	}
> +
>  	if (!(nci_target->supported_protocols & (1 << protocol))) {
>  		pr_err("target does not support the requested protocol 0x%x\n",
>  		       protocol);
> -- 
> 2.41.0
> 
>