diff options
| author | Cezary Rojewski <cezary.rojewski@intel.com> | 2026-04-07 10:54:58 +0200 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-04-07 13:00:40 +0100 |
| commit | c5408d818316061d6063c11a4f47f1ba25a3a708 (patch) | |
| tree | c27c6ac1cc3791f2a22dd886d1aa05dce5f45a40 /sound | |
| parent | b33b340e22abaac0cba50f5efadf96ee65913e9d (diff) | |
| download | linux-c5408d818316061d6063c11a4f47f1ba25a3a708.tar.gz linux-c5408d818316061d6063c11a4f47f1ba25a3a708.zip | |
ASoC: Intel: avs: Fix memory leak in avs_register_i2s_test_boards()
Caller is responsible for freeing array allocated with
parse_int_array().
Found out by Coverity.
Fixes: 7d859189de13 ("ASoC: Intel: avs: Allow to specify custom configurations with i2s_test")
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://patch.msgid.link/20260407085459.400628-1-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
| -rw-r--r-- | sound/soc/intel/avs/board_selection.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sound/soc/intel/avs/board_selection.c b/sound/soc/intel/avs/board_selection.c index 8a46285181fa0..dd0e7cd5a7dd7 100644 --- a/sound/soc/intel/avs/board_selection.c +++ b/sound/soc/intel/avs/board_selection.c @@ -520,7 +520,8 @@ static int avs_register_i2s_test_boards(struct avs_dev *adev) if (num_elems > max_ssps) { dev_err(adev->dev, "board supports only %d SSP, %d specified\n", max_ssps, num_elems); - return -EINVAL; + ret = -EINVAL; + goto exit; } for (ssp_port = 0; ssp_port < num_elems; ssp_port++) { @@ -528,11 +529,13 @@ static int avs_register_i2s_test_boards(struct avs_dev *adev) for_each_set_bit(tdm_slot, &tdm_slots, 16) { ret = avs_register_i2s_test_board(adev, ssp_port, tdm_slot); if (ret) - return ret; + goto exit; } } - return 0; +exit: + kfree(array); + return ret; } static int avs_register_i2s_board(struct avs_dev *adev, struct snd_soc_acpi_mach *mach) |
