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

From: Simon Horman
Date: Thu Sep 07 2023 - 14:22:18 EST


Cc "John W. Linville" <linville@xxxxxxxxxxxxx>
Ilan Elias <ilane@xxxxxx>
Dmitry Vyukov <dvyukov@xxxxxxxxxx>
Lin Ma <linma@xxxxxxxxxx>

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: syzbot+0839b78e119aae1fec78@xxxxxxxxxxxxxxxxxxxxxxxxx
> Closes: https://syzkaller.appspot.com/bug?extid=0839b78e119aae1fec78
> Signed-off-by: Jeremy Cline <jeremy@xxxxxxxxxx>

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 <horms@xxxxxxxxxx>

> ---
> 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
>
>