From 7d3bcf18a9e116e25b75d5fa8a72ae1ebce687e0 Mon Sep 17 00:00:00 2001 From: "Rob Swindell (on ChromeOS)" <rob@synchro.net> Date: Sun, 30 Apr 2023 11:31:39 -0700 Subject: [PATCH] Fix memory leak in iniFreeParsedSections(), wasn't freeing the list member The 'list' member was allocated by iniParseSections() but never freed. Caught be Nelgin's recent valgrind report, e.g.: ==2725235== 56 bytes in 1 blocks are indirectly lost in loss record 82 of 191 ==2725235== at 0x484DCD3: realloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==2725235== by 0x4FA351C: strListAnnex (in /home/bbs/sbbs/repo/src/sbbs3/gcc.linux.x64.lib.release/libsbbs.so) ==2725235== by 0x4F9ADDE: iniParseSections (in /home/bbs/sbbs/repo/src/sbbs3/gcc.linux.x64.lib.release/libsbbs.so) ==2725235== by 0x49F1F0A: read_chat_cfg (in /home/bbs/sbbs/repo/src/sbbs3/gcc.linux.x64.lib.release/libsbbs.so) ==2725235== by 0x49E8BF1: load_cfg (in /home/bbs/sbbs/repo/src/sbbs3/gcc.linux.x64.lib.release/libsbbs.so) ==2725235== by 0x5C14C75: ftp_server (in /home/bbs/sbbs/repo/src/sbbs3/gcc.linux.x64.lib.release/libftpsrvr.so) ==2725235== by 0x5D5AB42: start_thread (pthread_create.c:442) ==2725235== by 0x5DEBBB3: clone (clone.S:100) --- src/xpdev/ini_file.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/xpdev/ini_file.c b/src/xpdev/ini_file.c index ee838392c7..2e1b6ff49d 100644 --- a/src/xpdev/ini_file.c +++ b/src/xpdev/ini_file.c @@ -1605,6 +1605,7 @@ void* iniFreeParsedSections(named_str_list_t** list) for(i = 0; list[i] != NULL; ++i) { free(list[i]->name); + free(list[i]->list); free(list[i]); } -- GitLab