Re: [PATCH 1/4] ASoC: topology: Fix references to freed memory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On 6/13/2024 8:44 AM, Péter Ujfalusi wrote:

On 13/06/2024 09:29, Péter Ujfalusi wrote:
+		route->sink = devm_kmemdup(tplg->dev, elem->sink,
+					   min(strlen(elem->sink), SNDRV_CTL_ELEM_ID_NAME_MAXLEN),

Initially I did not see why this breaks, but then:

The strlen() function calculates the length of the string pointed to by
s, excluding the terminating null byte ('\0').

Likely the fix is as simple as:
min(strlen(elem->sink) + 1, SNDRV_CTL_ELEM_ID_NAME_MAXLEN)

or better yet:
route->sink = devm_kasprintf(tplg->dev, GFP_KERNEL, "%s", elem->sink);

or even better:
route->sink = devm_kstrdup(tplg->dev, elem->sink, GFP_KERNEL);


I guess I might have overdid it a bit, let's go with devm_kstrdup for all of them, as it should just work unless someone tries to corrupt topology file.




[Index of Archives]     [Pulseaudio]     [Linux Audio Users]     [ALSA Devel]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux