https://bugs.kde.org/show_bug.cgi?id=408663
Bug ID: 408663 Summary: Patch: Suppression file for musl libc Product: valgrind Version: 3.14.0 Platform: Other OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: memcheck Assignee: jsew...@acm.org Reporter: uvgtfi2...@bozuc.anonbox.net Target Milestone: --- Created attachment 120849 --> https://bugs.kde.org/attachment.cgi?id=120849&action=edit Patch adding a suppression file for musl SUMMARY Valgrind doesn't have a default suppression file for musl and therefore reports false-positive memory leaks for dynlink (See https://www.openwall.com/lists/musl/2017/06/15/4). This bug report contains a patch adding such a suppression file. STEPS TO REPRODUCE Consider the following C program: #include <stdio.h> #include <string.h> #include <stdlib.h> int main(void) { char *str; str = strdup("foo"); printf("%s\n", str); free(str); return 0; } Compile and link this program against musl libc and invoke it using valgrind. OBSERVED RESULT $ cc -o test test.c $ valgrind --leak-check=full --show-leak-kinds=all ./test ==29077== HEAP SUMMARY: ==29077== in use at exit: 476 bytes in 4 blocks ==29077== total heap usage: 6 allocs, 2 frees, 520 bytes allocated ==29077== ==29077== 48 bytes in 3 blocks are still reachable in loss record 1 of 2 ==29077== at 0x489D6F0: calloc (vg_replace_malloc.c:752) ==29077== by 0x40587F2: load_direct_deps (dynlink.c:1170) ==29077== by 0x40587F2: load_deps (dynlink.c:1197) ==29077== by 0x40587F2: load_deps (dynlink.c:1193) ==29077== by 0x40591BF: __dls3 (dynlink.c:1832) ==29077== by 0x4058BA6: __dls2b (dynlink.c:1660) ==29077== by 0x4058B4B: __dls2 (dynlink.c:1638) ==29077== by 0x405674F: ??? (in /lib/ld-musl-x86_64.so.1) ==29077== ==29077== 428 bytes in 1 blocks are still reachable in loss record 2 of 2 ==29077== at 0x489D6F0: calloc (vg_replace_malloc.c:752) ==29077== by 0x40585BA: load_library (dynlink.c:1110) ==29077== by 0x40591FD: load_preload (dynlink.c:1260) ==29077== by 0x40591FD: __dls3 (dynlink.c:1831) ==29077== by 0x4058BA6: __dls2b (dynlink.c:1660) ==29077== by 0x4058B4B: __dls2 (dynlink.c:1638) ==29077== by 0x405674F: ??? (in /lib/ld-musl-x86_64.so.1) ==29077== ==29077== LEAK SUMMARY: ==29077== definitely lost: 0 bytes in 0 blocks ==29077== indirectly lost: 0 bytes in 0 blocks ==29077== possibly lost: 0 bytes in 0 blocks ==29077== still reachable: 476 bytes in 4 blocks ==29077== suppressed: 0 bytes in 0 blocks ==29077== ==29077== For counts of detected and suppressed errors, rerun with: -v ==29077== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) EXPECTED RESULT Valgrind shouldn't report any errors. SOFTWARE/OS VERSIONS Alpine Linux Edge, Valgrind 3.14 ADDITIONAL INFORMATION This was copied from Alpine Linux: https://github.com/alpinelinux/aports/pull/8779 -- You are receiving this mail because: You are watching all bug changes.