ASoC: SOF: loader: fix memory leak in get_ext_windows
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Tue, 25 Aug 2020 23:58:52 +0000 (16:58 -0700)
committerMark Brown <broonie@kernel.org>
Wed, 26 Aug 2020 11:44:08 +0000 (12:44 +0100)
sdev->info_window is allocated with kmemdup and never freed, use devm_
version since this is only used for first boot.

Fixes: 8d809c15acf23 ('ASoC: SOF: ext_manifest: parse windows')
Cc: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Daniel Baluta <daniel.baluta@gmail.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20200825235854.1588034-3-ranjani.sridharan@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/loader.c

index 25dc28e..42e0e3e 100644 (file)
@@ -33,7 +33,8 @@ static int get_ext_windows(struct snd_sof_dev *sdev,
        }
 
        /* keep a local copy of the data */
-       sdev->info_window = kmemdup(w, ext_hdr->hdr.size, GFP_KERNEL);
+       sdev->info_window = devm_kmemdup(sdev->dev, w, ext_hdr->hdr.size,
+                                        GFP_KERNEL);
        if (!sdev->info_window)
                return -ENOMEM;