aboutsummaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorÖmer Mete Kaya <omermetekaya0@gmail.com>2026-09-09 15:14:31 +0300
committerDavid Heidelberg <david@ixit.cz>2026-09-23 22:13:17 +0200
commit408cff6bd60636df201274d320edfdfde9ed41db (patch)
tree588fb1900d8412f842fa7c764737ee6dd1a03c0f /net
parentc04981e42d94f39c1dba965cc462a046e946a6c5 (diff)
nfc: llcp: fix WKS SAP hijacking via prefix match in nfc_llcp_wks_sap()
nfc_llcp_wks_sap() compares only service_name_len bytes, so a short service_name like "u" matches longer WKS strings like "urn:nfc:sn:snep". Fix by requiring exact length match before strncmp(). Fixes: d646960f7986 ("NFC: Initial LLCP support") Signed-off-by: Ömer Mete Kaya <omermetekaya0@gmail.com> Link: https://patch.msgid.link/20260909121437.33744-1-omermetekaya0@gmail.com Signed-off-by: David Heidelberg <david@ixit.cz>
Diffstat (limited to 'net')
-rw-r--r--net/nfc/llcp_core.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/nfc/llcp_core.c b/net/nfc/llcp_core.c
index 5ce3ce64baf2..def712e1b2b2 100644
--- a/net/nfc/llcp_core.c
+++ b/net/nfc/llcp_core.c
@@ -369,7 +369,8 @@ static int nfc_llcp_wks_sap(const char *service_name, size_t service_name_len)
if (wks[sap] == NULL)
continue;
- if (strncmp(wks[sap], service_name, service_name_len) == 0)
+ if (strlen(wks[sap]) == service_name_len &&
+ !strncmp(wks[sap], service_name, service_name_len))
return sap;
}