Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix potential memory leaks when errors happen #857

Merged
merged 2 commits into from Jul 21, 2023

Commits on Mar 6, 2023

  1. fix potential memory leak in unbound-host when errors happen

    ==3709953== HEAP SUMMARY:
    ==3709953==     in use at exit: 276,541 bytes in 23 blocks
    ==3709953==   total heap usage: 29 allocs, 6 frees, 280,682 bytes allocated
    ==3709953==
    ==3709953== 1 bytes in 1 blocks are still reachable in loss record 1 of 23
    ==3709953==    at 0x4866EC0: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-arm64-linux.so)
    ==3709953==    by 0x48E2BC3: ub_initstate (random.c:85)
    ==3709953==    by 0x489B067: ub_ctx_create_nopipe (libunbound.c:114)
    ==3709953==    by 0x489B31F: ub_ctx_create (libunbound.c:180)
    ==3709953==    by 0x10E203: main (unbound-host.c:433)
    ==3709953==
    ......
    ==3709953== 8,192 bytes in 1 blocks are still reachable in loss record 22 of 23
    ==3709953==    at 0x4866EC0: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-arm64-linux.so)
    ==3709953==    by 0x48E427B: regional_create_custom (regional.c:94)
    ==3709953==    by 0x48DEA03: edns_strings_create (edns.c:57)
    ==3709953==    by 0x489B0F3: ub_ctx_create_nopipe (libunbound.c:157)
    ==3709953==    by 0x489B31F: ub_ctx_create (libunbound.c:180)
    ==3709953==    by 0x10E203: main (unbound-host.c:433)
    ==3709953==
    ==3709953== 262,144 bytes in 1 blocks are still reachable in loss record 23 of 23
    ==3709953==    at 0x486933C: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-arm64-linux.so)
    ==3709953==    by 0x48C826F: config_create (config_file.c:179)
    ==3709953==    by 0x48C85AF: config_create_forlib (config_file.c:383)
    ==3709953==    by 0x489B0BB: ub_ctx_create_nopipe (libunbound.c:130)
    ==3709953==    by 0x489B31F: ub_ctx_create (libunbound.c:180)
    ==3709953==    by 0x10E203: main (unbound-host.c:433)
    ==3709953==
    ==3709953== LEAK SUMMARY:
    ==3709953==    definitely lost: 0 bytes in 0 blocks
    ==3709953==    indirectly lost: 0 bytes in 0 blocks
    ==3709953==      possibly lost: 0 bytes in 0 blocks
    ==3709953==    still reachable: 276,541 bytes in 23 blocks
    ==3709953==         suppressed: 0 bytes in 0 blocks
    ==3709953==
    ==3709953== For lists of detected and suppressed errors, rerun with: -s
    ==3709953== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
    
    Signed-off-by: eaglegai <eaglegai@163.com>
    eaglegai committed Mar 6, 2023
    Configuration menu
    Copy the full SHA
    3191199 View commit details
    Browse the repository at this point in the history

Commits on Mar 7, 2023

  1. fix memory leak in unbound-streamtcp when open_svr failed

    ==1927474== Memcheck, a memory error detector
    ==1927474== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
    ==1927474== Using Valgrind-3.16.0 and LibVEX; rerun with -h for copyright info
    ==1927474== Command: unbound-streamtcp -f localhost
    ==1927474==
    fatal: bad server specs 'localhost'
    ==1927474==
    ==1927474== HEAP SUMMARY:
    ==1927474==     in use at exit: 131,186 bytes in 4 blocks
    ==1927474==   total heap usage: 5 allocs, 1 frees, 132,210 bytes allocated
    ==1927474==
    ==1927474== 40 bytes in 1 blocks are still reachable in loss record 1 of 4
    ==1927474==    at 0x483F751: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==1927474==    by 0x1E0573: sldns_buffer_new (sbuffer.c:21)
    ==1927474==    by 0x11ECED: send_em (streamtcp.c:374)
    ==1927474==    by 0x11E6C1: main (streamtcp.c:585)
    ==1927474==
    ==1927474== 40 bytes in 1 blocks are still reachable in loss record 2 of 4
    ==1927474==    at 0x483F751: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==1927474==    by 0x1E0573: sldns_buffer_new (sbuffer.c:21)
    ==1927474==    by 0x11ECFA: send_em (streamtcp.c:375)
    ==1927474==    by 0x11E6C1: main (streamtcp.c:585)
    ==1927474==
    ==1927474== 65,553 bytes in 1 blocks are still reachable in loss record 3 of 4
    ==1927474==    at 0x483F751: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==1927474==    by 0x1E0583: sldns_buffer_new (sbuffer.c:27)
    ==1927474==    by 0x11ECED: send_em (streamtcp.c:374)
    ==1927474==    by 0x11E6C1: main (streamtcp.c:585)
    ==1927474==
    ==1927474== 65,553 bytes in 1 blocks are still reachable in loss record 4 of 4
    ==1927474==    at 0x483F751: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==1927474==    by 0x1E0583: sldns_buffer_new (sbuffer.c:27)
    ==1927474==    by 0x11ECFA: send_em (streamtcp.c:375)
    ==1927474==    by 0x11E6C1: main (streamtcp.c:585)
    ==1927474==
    ==1927474== LEAK SUMMARY:
    ==1927474==    definitely lost: 0 bytes in 0 blocks
    ==1927474==    indirectly lost: 0 bytes in 0 blocks
    ==1927474==      possibly lost: 0 bytes in 0 blocks
    ==1927474==    still reachable: 131,186 bytes in 4 blocks
    ==1927474==         suppressed: 0 bytes in 0 blocks
    ==1927474==
    ==1927474== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
    
    Signed-off-by: eaglegai <eaglegai@163.com>
    eaglegai committed Mar 7, 2023
    Configuration menu
    Copy the full SHA
    184248e View commit details
    Browse the repository at this point in the history