summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPengpeng Hou <pengpeng@iscas.ac.cn>2026-06-30 14:57:38 +0800
committerKrzysztof Kozlowski <krzk@kernel.org>2026-07-27 20:38:32 +0200
commit73f46553fd74a1fc56eb2e6218ff3a4ea1de43b5 (patch)
treec7e2f42676270b5da2b78fd5be288e88a68cdcb3
parent169ae5e65e5aaf213b6a578f6478a9fd2e523606 (diff)
downloadlinux-next-73f46553fd74a1fc56eb2e6218ff3a4ea1de43b5.tar.gz
linux-next-73f46553fd74a1fc56eb2e6218ff3a4ea1de43b5.zip
w1: validate slave string length before checking separator
w1_atoreg_num() checks buf[2] for the family/id separator before proving the input contains that byte. Require at least the family and separator prefix before checking the separator. Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn> Link: https://patch.msgid.link/2026063007047999.4-ccfa108-0039-w1-validate-slave-string-le-pengpeng@iscas.ac.cn Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
-rw-r--r--drivers/w1/w1.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c
index 486f321eadc8..c16946642789 100644
--- a/drivers/w1/w1.c
+++ b/drivers/w1/w1.c
@@ -403,6 +403,11 @@ static int w1_atoreg_num(struct device *dev, const char *buf, size_t count,
const char *error_msg = "bad slave string format, expecting "
"ff-dddddddddddd\n";
+ if (count < 3) {
+ dev_err(dev, "%s", error_msg);
+ return -EINVAL;
+ }
+
if (buf[2] != '-') {
dev_err(dev, "%s", error_msg);
return -EINVAL;