nfc: st21nfca: fix incorrect validating logic in EVT_TRANSACTION
authorMartin Faltesek <mfaltesek@google.com>
Tue, 7 Jun 2022 02:57:27 +0000 (21:57 -0500)
committerJakub Kicinski <kuba@kernel.org>
Wed, 8 Jun 2022 17:17:17 +0000 (10:17 -0700)
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 ||.

Fixes: 26fc6c7f02cb ("NFC: st21nfca: Add HCI transaction event support")
Cc: stable@vger.kernel.org
Signed-off-by: Martin Faltesek <mfaltesek@google.com>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/nfc/st21nfca/se.c

index 7e213f8ddc98b11ebc98b87c85fd7a7ceed89f64..9645777f2544e6d72decb8c62e0b291ee5167b24 100644 (file)
@@ -315,7 +315,7 @@ int st21nfca_connectivity_event_received(struct nfc_hci_dev *hdev, u8 host,
                 * 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;