From: Adrian Freihofer <[email protected]> make && valgrind -s --leak-check=full ./ptest-runner -d tests/data2
==4154029== HEAP SUMMARY: ==4154029== in use at exit: 20 bytes in 2 blocks ==4154029== total heap usage: 45 allocs, 43 frees, 42,909 bytes allocated ==4154029== ==4154029== 20 (8 direct, 12 indirect) bytes in 1 blocks are definitely lost in loss record 2 of 2 ==4154029== at 0x4839809: malloc (vg_replace_malloc.c:307) ==4154029== by 0x40252D: str2array (main.c:70) ==4154029== by 0x402768: main (main.c:119) ==4154029== ==4154029== LEAK SUMMARY: ==4154029== definitely lost: 8 bytes in 1 blocks ==4154029== indirectly lost: 12 bytes in 1 blocks ==4154029== possibly lost: 0 bytes in 0 blocks ==4154029== still reachable: 0 bytes in 0 blocks ==4154029== suppressed: 0 bytes in 0 blocks ==4154029== ==4154029== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) With this patch valgrind reports 0 errors. Signed-off-by: Adrian Freihofer <[email protected]> --- main.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index 467548e..e73626c 100644 --- a/main.c +++ b/main.c @@ -84,6 +84,25 @@ str2array(char *str, const char *delim, int *num) return array; } +void cleanup_ptest_opts(struct ptest_options *opts) +{ + for (int i=0; i < opts->dirs_no; i++) + free(opts->dirs[i]); + + free(opts->dirs); + opts->dirs = NULL; + + if (opts->ptests) { + free(opts->ptests); + opts->ptests = NULL; + } + + if (opts->xml_filename) { + free(opts->xml_filename); + opts->xml_filename = NULL; + } +} + int main(int argc, char *argv[]) { @@ -98,7 +117,7 @@ main(int argc, char *argv[]) #endif struct ptest_list *head, *run; - struct ptest_options opts; + __attribute__ ((__cleanup__(cleanup_ptest_opts))) struct ptest_options opts; opts.dirs = malloc(sizeof(char **) * 1); CHECK_ALLOCATION(opts.dirs, 1, 1); -- 2.20.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#54179): https://lists.yoctoproject.org/g/yocto/message/54179 Mute This Topic: https://lists.yoctoproject.org/mt/84352907/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
