mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-23 07:23:12 +02:00
mISDN: Fix memory leak in dsp_hwec_enable()
[ Upstream commit 0704a3da7ce50f972e898bbda88d2692a22922d9 ] dsp_hwec_enable() allocates dup pointer by kstrdup(arg), but then it updates dup variable by strsep(&dup, ","). As a result when it calls kfree(dup), the dup variable may be a modified pointer that no longer points to the original allocated memory, causing a memory leak. The issue is the same pattern as fixed in commitc6a502c229
("mISDN: Fix memory leak in dsp_pipeline_build()"). Fixes:9a43816182
("mISDN: Remove VLAs") Signed-off-by: Miaoqian Lin <linmq006@gmail.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/20250828081457.36061-1-linmq006@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
1079c10293
commit
e96d08ddbc
|
@ -51,14 +51,14 @@ void dsp_hwec_enable(struct dsp *dsp, const char *arg)
|
||||||
goto _do;
|
goto _do;
|
||||||
|
|
||||||
{
|
{
|
||||||
char *dup, *tok, *name, *val;
|
char *dup, *next, *tok, *name, *val;
|
||||||
int tmp;
|
int tmp;
|
||||||
|
|
||||||
dup = kstrdup(arg, GFP_ATOMIC);
|
dup = next = kstrdup(arg, GFP_ATOMIC);
|
||||||
if (!dup)
|
if (!dup)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
while ((tok = strsep(&dup, ","))) {
|
while ((tok = strsep(&next, ","))) {
|
||||||
if (!strlen(tok))
|
if (!strlen(tok))
|
||||||
continue;
|
continue;
|
||||||
name = strsep(&tok, "=");
|
name = strsep(&tok, "=");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user