mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] nfc: pn533: Add poll mod list filling check
@ 2024-07-02  9:39 Aleksandr Mishin
  2024-07-03  5:02 ` Krzysztof Kozlowski
  2024-08-27  8:48 ` [PATCH v2] " Aleksandr Mishin
  0 siblings, 2 replies; 13+ messages in thread
From: Aleksandr Mishin @ 2024-07-02  9:39 UTC (permalink / raw)
  To: Samuel Ortiz
  Cc: Aleksandr Mishin, Krzysztof Kozlowski, netdev, linux-kernel, lvc-project

In case of im_protocols value is 1 and tm_protocols value is 0 this
combination successfully passes the check
'if (!im_protocols && !tm_protocols)' in the nfc_start_poll().
But then after pn533_poll_create_mod_list() call in pn533_start_poll()
poll mod list will remain empty and dev->poll_mod_count will remain 0
which lead to division by zero.

Add poll mod list filling check.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: dfccd0f58044 ("NFC: pn533: Add some polling entropy")
Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
---
 drivers/nfc/pn533/pn533.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/nfc/pn533/pn533.c b/drivers/nfc/pn533/pn533.c
index b19c39dcfbd9..e2bc67300a91 100644
--- a/drivers/nfc/pn533/pn533.c
+++ b/drivers/nfc/pn533/pn533.c
@@ -1723,6 +1723,11 @@ static int pn533_start_poll(struct nfc_dev *nfc_dev,
 	}
 
 	pn533_poll_create_mod_list(dev, im_protocols, tm_protocols);
+	if (!dev->poll_mod_count) {
+		nfc_err(dev->dev,
+			"Poll mod list is empty\n");
+		return -EINVAL;
+	}
 
 	/* Do not always start polling from the same modulation */
 	get_random_bytes(&rand_mod, sizeof(rand_mod));
-- 
2.30.2


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2024-08-29 10:21 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-07-02  9:39 [PATCH] nfc: pn533: Add poll mod list filling check Aleksandr Mishin
2024-07-03  5:02 ` Krzysztof Kozlowski
2024-07-03  7:26   ` Aleksandr Mishin
2024-07-04 12:07     ` Krzysztof Kozlowski
2024-08-05  8:47       ` [lvc-project] " Fedor Pchelkin
2024-08-27  8:48 ` [PATCH v2] " Aleksandr Mishin
2024-08-29  8:26   ` Paolo Abeni
2024-08-29  8:30     ` Paolo Abeni
2024-08-29  9:06     ` Krzysztof Kozlowski
2024-08-29  9:33       ` Paolo Abeni
2024-08-29  9:34       ` Paolo Abeni
2024-08-29 10:02         ` Krzysztof Kozlowski
2024-08-29 10:21   ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®