Skip to content

Commit 48c611f

Browse files
Benjamin CabéChromeos LUCI
authored andcommitted
drivers: audio: dmic_nrfx: fix memory leak
Ensure proper release of memory slab when dmm_buffer_in_release fails in the event_handler function. (cherry picked from commit 7333349) Original-Signed-off-by: Benjamin Cabé <[email protected]> GitOrigin-RevId: 7333349 Cr-Build-Id: 8711682253588645601 Cr-Build-Url: https://cr-buildbucket.appspot.com/build/8711682253588645601 Copybot-Job-Name: zephyr-main-copybot-downstream Change-Id: I85de5f95ebf59ea8a49fdfda938f05c80b4b00f2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/zephyr/+/6655862 Tested-by: Yuval Peress <[email protected]> Commit-Queue: Keith Short <[email protected]> Tested-by: Keith Short <[email protected]> Reviewed-by: Keith Short <[email protected]> Tested-by: ChromeOS Copybot <[email protected]> Reviewed-by: Yuval Peress <[email protected]>
1 parent 87bcc5d commit 48c611f

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

drivers/audio/dmic_nrfx_pdm.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ static void event_handler(const struct device *dev, const nrfx_pdm_evt_t *evt)
148148
drv_data->block_size, evt->buffer_released);
149149
if (ret < 0) {
150150
LOG_ERR("Failed to release buffer: %d", ret);
151+
free_buffer(drv_data, mem_slab_buffer);
151152
return;
152153
}
153154
free_buffer(drv_data, mem_slab_buffer);
@@ -172,6 +173,7 @@ static void event_handler(const struct device *dev, const nrfx_pdm_evt_t *evt)
172173
drv_data->block_size, evt->buffer_released);
173174
if (ret < 0) {
174175
LOG_ERR("Failed to release buffer: %d", ret);
176+
free_buffer(drv_data, mem_slab_buffer);
175177
stop_pdm(drv_data);
176178
return;
177179
}

0 commit comments

Comments
 (0)