From 11b9ce23f7700cd238b18d650f28aa934d545fc8 Mon Sep 17 00:00:00 2001 From: Peter Ujfalusi Date: Mon, 31 Jul 2023 11:20:42 +0300 Subject: [PATCH] lib-manager: Free up memory for the library in case of a store error If lib_manager_store_data() fails to read the rest of the library we need to free up the allocated memory. Signed-off-by: Peter Ujfalusi --- src/library_manager/lib_manager.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/library_manager/lib_manager.c b/src/library_manager/lib_manager.c index 079c1e0fc..c535d5c55 100644 --- a/src/library_manager/lib_manager.c +++ b/src/library_manager/lib_manager.c @@ -541,8 +541,10 @@ static int lib_manager_store_library(struct lib_manager_dma_ext *dma_ext, /* Copy remaining library part into storage buffer */ ret = lib_manager_store_data(dma_ext, (uint8_t __sparse_cache *)library_base_address + MAN_MAX_SIZE_V1_8, preload_size - MAN_MAX_SIZE_V1_8); - if (ret < 0) + if (ret < 0) { + rfree(library_base_address); return ret; + } /* Now update sof context with new library */ lib_manager_update_sof_ctx((__sparse_force void *)library_base_address, lib_id);