| From f46c5bcbed2342aba10de74a1b6b06354c2eb200 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 17 Jul 2023 16:14:50 +0300 |
| Subject: selftests/resctrl: Don't leak buffer in fill_cache() |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> |
| |
| [ Upstream commit 2d320b1029ee7329ee0638181be967789775b962 ] |
| |
| The error path in fill_cache() does return before the allocated buffer |
| is freed leaking the buffer. |
| |
| The leak was introduced when fill_cache_read() started to return errors |
| in commit c7b607fa9325 ("selftests/resctrl: Fix null pointer |
| dereference on open failed"), before that both fill functions always |
| returned 0. |
| |
| Move free() earlier to prevent the mem leak. |
| |
| Fixes: c7b607fa9325 ("selftests/resctrl: Fix null pointer dereference on open failed") |
| Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> |
| Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> |
| Tested-by: Babu Moger <babu.moger@amd.com> |
| Tested-by: Shaopeng Tan (Fujitsu) <tan.shaopeng@fujitsu.com> |
| Signed-off-by: Shuah Khan <skhan@linuxfoundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| tools/testing/selftests/resctrl/fill_buf.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/tools/testing/selftests/resctrl/fill_buf.c b/tools/testing/selftests/resctrl/fill_buf.c |
| index 341cc93ca84c4..3b328c8448964 100644 |
| --- a/tools/testing/selftests/resctrl/fill_buf.c |
| +++ b/tools/testing/selftests/resctrl/fill_buf.c |
| @@ -177,12 +177,13 @@ fill_cache(unsigned long long buf_size, int malloc_and_init, int memflush, |
| else |
| ret = fill_cache_write(start_ptr, end_ptr, resctrl_val); |
| |
| + free(startptr); |
| + |
| if (ret) { |
| printf("\n Error in fill cache read/write...\n"); |
| return -1; |
| } |
| |
| - free(startptr); |
| |
| return 0; |
| } |
| -- |
| 2.40.1 |
| |