* [PATCH] ALSA: control: Fix parsing of numeric fields
@ 2026-11-06 15:45 Sreeraj S Kurup
2026-11-06 16:23 ` [PATCH v2] " Sreeraj S Kurup
0 siblings, 1 reply; 2+ messages in thread
From: Sreeraj S Kurup @ 2026-11-06 15:45 UTC (permalink / raw)
To: tiwai, perex, tiwai; +Cc: linux-kernel, linux-sound, Sreeraj S Kurup
parse_uint() passes the remaining input string to kstrtoull().
When the input contains comma-separated fields, the string
contains both the numeric value and the following fields.
For example, with:
device=1,subdevice=0,name=Master
kstrtoull() receives "1,subdevice=0,name=Master" and fails
to parse the numeric value.
Stop parsing at the next comma and pass only the numeric
field to kstrtouint().
This allows numeric fields to be parsed correctly in
comma-separated input.
Signed-off-by: Sreeraj S Kurup <sreekuttan2156239@gmail.com>
---
sound/core/control_led.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/sound/core/control_led.c b/sound/core/control_led.c
index 501387287ae6..3f54af2cb505 100644
--- a/sound/core/control_led.c
+++ b/sound/core/control_led.c
@@ -458,11 +458,19 @@ static char *find_eos(char *s)
static char *parse_uint(char *s, unsigned int *val)
{
- unsigned long long res;
- if (kstrtoull(s, 10, &res))
- res = 0;
- *val = res;
- return find_eos(s);
+ char *end = s;
+ char delimiter;
+
+ while (*end && *end != ',')
+ end++;
+
+ delimiter = *end;
+ *end = '\0';
+ if (kstrtouint(s, 10, val))
+ *val = 0;
+ *end = delimiter;
+
+ return delimiter ? end + 1 : end;
}
static char *parse_string(char *s, char *val, size_t val_size)
--
2.55.0
^ permalink raw reply [flat|nested] 2+ messages in thread* [PATCH v2] ALSA: control: Fix parsing of numeric fields
2026-11-06 15:45 [PATCH] ALSA: control: Fix parsing of numeric fields Sreeraj S Kurup
@ 2026-11-06 16:23 ` Sreeraj S Kurup
0 siblings, 0 replies; 2+ messages in thread
From: Sreeraj S Kurup @ 2026-11-06 16:23 UTC (permalink / raw)
To: sreekuttan2156239; +Cc: linux-kernel, linux-sound, perex, tiwai, tiwai
parse_uint() passes the remaining input string to kstrtoull().
When the input contains comma-separated fields, the string
contains both the numeric value and the following fields.
For example, with:
device=1,subdevice=0,name=Master
kstrtoull() receives "1,subdevice=0,name=Master" and fails
to parse the numeric value.
Stop parsing at the next comma and pass only the numeric
field to kstrtouint().
This allows numeric fields to be parsed correctly in
comma-separated input.
Fixes: a135dfb5de15 ("ALSA: led control - add sysfs kcontrol LED marking layer")
Signed-off-by: Sreeraj S Kurup <sreekuttan2156239@gmail.com>
---
v2:
- Add the Fixes trailer.
sound/core/control_led.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/sound/core/control_led.c b/sound/core/control_led.c
index 501387287ae6..3f54af2cb505 100644
--- a/sound/core/control_led.c
+++ b/sound/core/control_led.c
@@ -458,11 +458,19 @@ static char *find_eos(char *s)
static char *parse_uint(char *s, unsigned int *val)
{
- unsigned long long res;
- if (kstrtoull(s, 10, &res))
- res = 0;
- *val = res;
- return find_eos(s);
+ char *end = s;
+ char delimiter;
+
+ while (*end && *end != ',')
+ end++;
+
+ delimiter = *end;
+ *end = '\0';
+ if (kstrtouint(s, 10, val))
+ *val = 0;
+ *end = delimiter;
+
+ return delimiter ? end + 1 : end;
}
static char *parse_string(char *s, char *val, size_t val_size)
--
2.55.0
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-11-06 16:24 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-06 15:45 [PATCH] ALSA: control: Fix parsing of numeric fields Sreeraj S Kurup
2026-11-06 16:23 ` [PATCH v2] " Sreeraj S Kurup
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®