nfc: st-nci: fix incorrect validating logic in EVT_TRANSACTION
authorMartin Faltesek <mfaltesek@google.com>
Tue, 22 Nov 2022 00:42:44 +0000 (18:42 -0600)
committerJakub Kicinski <kuba@kernel.org>
Thu, 24 Nov 2022 04:01:50 +0000 (20:01 -0800)
The first validation check for EVT_TRANSACTION has two different checks
tied together with logical AND. One is a check for minimum packet length,
and the other is for a valid aid_tag. If either condition is true (fails),
then an error should be triggered. The fix is to change && to ||.

Reported-by: Denis Efremov <denis.e.efremov@oracle.com>
Reviewed-by: Guenter Roeck <groeck@google.com>
Fixes: 5d1ceb7f5e56 ("NFC: st21nfcb: Add HCI transaction event support")
Signed-off-by: Martin Faltesek <mfaltesek@google.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/nfc/st-nci/se.c

index 7764b1a..589e1de 100644 (file)
@@ -326,7 +326,7 @@ static int st_nci_hci_connectivity_event_received(struct nci_dev *ndev,
                 * AID          81      5 to 16
                 * PARAMETERS   82      0 to 255
                 */
-               if (skb->len < NFC_MIN_AID_LENGTH + 2 &&
+               if (skb->len < NFC_MIN_AID_LENGTH + 2 ||
                    skb->data[0] != NFC_EVT_TRANSACTION_AID_TAG)
                        return -EPROTO;