Skip to content

Commit 354a6e7

Browse files
jeremyclinePaolo Abeni
authored andcommitted
nfc: nci: assert requested protocol is valid
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: 6a2968a ("NFC: basic NCI protocol implementation") Reported-and-tested-by: syzbot+0839b78e119aae1fec78@syzkaller.appspotmail.com Closes: https://syzkaller.appspot.com/bug?extid=0839b78e119aae1fec78 Signed-off-by: Jeremy Cline <jeremy@jcline.org> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://lore.kernel.org/r/20231009200054.82557-1-jeremy@jcline.org Signed-off-by: Paolo Abeni <pabeni@redhat.com>
1 parent e2bca48 commit 354a6e7

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

net/nfc/nci/core.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -909,6 +909,11 @@ static int nci_activate_target(struct nfc_dev *nfc_dev,
909909
return -EINVAL;
910910
}
911911

912+
if (protocol >= NFC_PROTO_MAX) {
913+
pr_err("the requested nfc protocol is invalid\n");
914+
return -EINVAL;
915+
}
916+
912917
if (!(nci_target->supported_protocols & (1 << protocol))) {
913918
pr_err("target does not support the requested protocol 0x%x\n",
914919
protocol);

0 commit comments

Comments
 (0)