Skip to content

Commit c5408d8

Browse files
crojewsk-intelbroonie
authored andcommitted
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: 7d85918 ("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>
1 parent b33b340 commit c5408d8

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

sound/soc/intel/avs/board_selection.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -520,19 +520,22 @@ static int avs_register_i2s_test_boards(struct avs_dev *adev)
520520
if (num_elems > max_ssps) {
521521
dev_err(adev->dev, "board supports only %d SSP, %d specified\n",
522522
max_ssps, num_elems);
523-
return -EINVAL;
523+
ret = -EINVAL;
524+
goto exit;
524525
}
525526

526527
for (ssp_port = 0; ssp_port < num_elems; ssp_port++) {
527528
tdm_slots = array[1 + ssp_port];
528529
for_each_set_bit(tdm_slot, &tdm_slots, 16) {
529530
ret = avs_register_i2s_test_board(adev, ssp_port, tdm_slot);
530531
if (ret)
531-
return ret;
532+
goto exit;
532533
}
533534
}
534535

535-
return 0;
536+
exit:
537+
kfree(array);
538+
return ret;
536539
}
537540

538541
static int avs_register_i2s_board(struct avs_dev *adev, struct snd_soc_acpi_mach *mach)

0 commit comments

Comments
 (0)