https://bugs.kde.org/show_bug.cgi?id=457860
Bug ID: 457860
Summary: Memcheck classifies leaks differently depending on if
a C program exits with `return` or `exit`
Product: valgrind
Version: 3.18.1
Platform: Ubuntu Packages
OS: Linux
Status: REPORTED
Severity: minor
Priority: NOR
Component: memcheck
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Memcheck classifies leaks differently depending on if a C program exits with
`return` or `exit`
Given this very simple C program in `test_return.c`
```C
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
double *a = malloc(100);
return 0;
}
```
The following output is given
```bash
$ gcc -O0 -g test_return.c -o test_return
$ valgrind -s --leak-check=full --show-leak-kinds=all ./test_return
==26141== Memcheck, a memory error detector
==26141== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==26141== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
==26141== Command: ./test_return
==26141==
==26141==
==26141== HEAP SUMMARY:
==26141== in use at exit: 100 bytes in 1 blocks
==26141== total heap usage: 1 allocs, 0 frees, 100 bytes allocated
==26141==
==26141== 100 bytes in 1 blocks are definitely lost in loss record 1 of 1
==26141== at 0x4848899: malloc (vg_replace_malloc.c:381)
==26141== by 0x10915E: main (test_return.c:6)
==26141==
==26141== LEAK SUMMARY:
==26141== definitely lost: 100 bytes in 1 blocks
==26141== indirectly lost: 0 bytes in 0 blocks
==26141== possibly lost: 0 bytes in 0 blocks
==26141== still reachable: 0 bytes in 0 blocks
==26141== suppressed: 0 bytes in 0 blocks
==26141==
==26141== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
```
But when given this slightly different program in `test_exit.c`
```C
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
double *a = malloc(100);
exit(0);
}
```
Instead we get
```bash
$ gcc -O0 -g test_exit.c -o test_exit
$ valgrind -s --leak-check=full --show-leak-kinds=all ./test_exit
==26180== Memcheck, a memory error detector
==26180== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==26180== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
==26180== Command: ./test_exit
==26180==
==26180==
==26180== HEAP SUMMARY:
==26180== in use at exit: 100 bytes in 1 blocks
==26180== total heap usage: 1 allocs, 0 frees, 100 bytes allocated
==26180==
==26180== 100 bytes in 1 blocks are still reachable in loss record 1 of 1
==26180== at 0x4848899: malloc (vg_replace_malloc.c:381)
==26180== by 0x10917E: main (test_exit.c:6)
==26180==
==26180== LEAK SUMMARY:
==26180== definitely lost: 0 bytes in 0 blocks
==26180== indirectly lost: 0 bytes in 0 blocks
==26180== possibly lost: 0 bytes in 0 blocks
==26180== still reachable: 100 bytes in 1 blocks
==26180== suppressed: 0 bytes in 0 blocks
==26180==
==26180== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
```
The difference being that with `return` the leak is classifies as "definitely
lost"
but with `exit` the leak is classifies as "still reachable"
even though these programs are identical.
According to section 5.1.2.2.3 of the C specification:
If the return type of the main function is a type compatible with int, a return
from the initial call to the main function is equivalent to calling the exit
function with the value returned by the main function as its argument; [...]
This means that the two above programs should be equivalent and thus behave in
the same manner.
Linux 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64
x86_64 x86_64 GNU/Linux
Full `-v` ouptut
test_exit.c
```
==26307== Memcheck, a memory error detector
==26307== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==26307== Using Valgrind-3.18.1-42b08ed5bd-20211015 and LibVEX; rerun with -h
for copyright info
==26307== Command: ./test_exit
==26307==
--26307-- Valgrind options:
--26307-- -v
--26307-- -s
--26307-- --leak-check=full
--26307-- --show-leak-kinds=all
--26307-- Contents of /proc/version:
--26307-- Linux version 5.4.72-microsoft-standard-WSL2 (oe-user@oe-host) (gcc
version 8.2.0 (GCC)) #1 SMP Wed Oct 28 23:40:43 UTC 2020
--26307--
--26307-- Arch and hwcaps: AMD64, LittleEndian,
amd64-cx16-lzcnt-rdtscp-sse3-ssse3-avx-avx2-bmi-f16c-rdrand-rdseed
--26307-- Page sizes: currently 4096, max supported 4096
--26307-- Valgrind library directory: /usr/libexec/valgrind
--26307-- Reading syms from /tmp/tmp.wURL71ZPmz/test_exit
--26307-- Reading syms from /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
--26307-- Considering
/usr/lib/debug/.build-id/61/ef896a699bb1c2e4e231642b2e1688b2f1a61e.debug ..
--26307-- .. build-id is valid
--26307-- Reading syms from /usr/libexec/valgrind/memcheck-amd64-linux
--26307-- Considering
/usr/lib/debug/.build-id/84/fedd9a4c04941b8d123398ad0dd0ebc25c120c.debug ..
--26307-- .. build-id is valid
--26307-- object doesn't have a dynamic symbol table
--26307-- Scheduler: using generic scheduler lock implementation.
--26307-- Reading suppressions file: /usr/libexec/valgrind/default.supp
==26307== embedded gdbserver: reading from
/tmp/vgdb-pipe-from-vgdb-to-26307-by-dylanb-on-???
==26307== embedded gdbserver: writing to
/tmp/vgdb-pipe-to-vgdb-from-26307-by-dylanb-on-???
==26307== embedded gdbserver: shared mem
/tmp/vgdb-pipe-shared-mem-vgdb-26307-by-dylanb-on-???
==26307==
==26307== TO CONTROL THIS PROCESS USING vgdb (which you probably
==26307== don't want to do, unless you know exactly what you're doing,
==26307== or are doing some strange experiment):
==26307== /usr/bin/vgdb --pid=26307 ...command...
==26307==
==26307== TO DEBUG THIS PROCESS USING GDB: start GDB like this
==26307== /path/to/gdb ./test_exit
==26307== and then give GDB the following command
==26307== target remote | /usr/bin/vgdb --pid=26307
==26307== --pid is optional if only one valgrind process is running
==26307==
--26307-- REDIR: 0x402aa60 (ld-linux-x86-64.so.2:strlen) redirected to
0x580bcec2 (vgPlain_amd64_linux_REDIR_FOR_strlen)
--26307-- REDIR: 0x402a830 (ld-linux-x86-64.so.2:index) redirected to
0x580bcedc (vgPlain_amd64_linux_REDIR_FOR_index)
--26307-- Reading syms from /usr/libexec/valgrind/vgpreload_core-amd64-linux.so
--26307-- Considering
/usr/lib/debug/.build-id/7b/e1c1588ba6713462a4091c80bbb78004f47ba6.debug ..
--26307-- .. build-id is valid
--26307-- Reading syms from
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so
--26307-- Considering
/usr/lib/debug/.build-id/ca/411cf3a4b32c9d21bbc464935b0f1af28fb2d8.debug ..
--26307-- .. build-id is valid
==26307== WARNING: new redirection conflicts with existing -- ignoring it
--26307-- old: 0x0402aa60 (strlen ) R-> (0000.0) 0x580bcec2
vgPlain_amd64_linux_REDIR_FOR_strlen
--26307-- new: 0x0402aa60 (strlen ) R-> (2007.0) 0x0484ee30
strlen
--26307-- REDIR: 0x4027240 (ld-linux-x86-64.so.2:strcmp) redirected to
0x484fcd0 (strcmp)
--26307-- REDIR: 0x402afc0 (ld-linux-x86-64.so.2:mempcpy) redirected to
0x4853840 (mempcpy)
--26307-- Reading syms from /usr/lib/x86_64-linux-gnu/libc.so.6
--26307-- Considering
/usr/lib/debug/.build-id/69/389d485a9793dbe873f0ea2c93e02efaa9aa3d.debug ..
--26307-- .. build-id is valid
==26307== WARNING: new redirection conflicts with existing -- ignoring it
--26307-- old: 0x04921ce0 (memalign ) R-> (1011.0) 0x0484e080
memalign
--26307-- new: 0x04921ce0 (memalign ) R-> (1017.0) 0x0484e050
aligned_alloc
==26307== WARNING: new redirection conflicts with existing -- ignoring it
--26307-- old: 0x04921ce0 (memalign ) R-> (1011.0) 0x0484e080
memalign
--26307-- new: 0x04921ce0 (memalign ) R-> (1017.0) 0x0484e020
aligned_alloc
==26307== WARNING: new redirection conflicts with existing -- ignoring it
--26307-- old: 0x04921ce0 (memalign ) R-> (1011.0) 0x0484e080
memalign
--26307-- new: 0x04921ce0 (memalign ) R-> (1017.0) 0x0484e050
aligned_alloc
==26307== WARNING: new redirection conflicts with existing -- ignoring it
--26307-- old: 0x04921ce0 (memalign ) R-> (1011.0) 0x0484e080
memalign
--26307-- new: 0x04921ce0 (memalign ) R-> (1017.0) 0x0484e020
aligned_alloc
--26307-- REDIR: 0x49247a0 (libc.so.6:strnlen) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4924a60 (libc.so.6:strpbrk) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4924360 (libc.so.6:strcmp) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4942d50 (libc.so.6:wcsnlen) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4925750 (libc.so.6:memset) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x49415c0 (libc.so.6:wcslen) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4925c90 (libc.so.6:memcpy@@GLIBC_2.14) redirected to
0x483f220 (_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x49413f0 (libc.so.6:wcschr) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x49242e0 (libc.so.6:index) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x49249e0 (libc.so.6:rindex) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4925620 (libc.so.6:memmove) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
==26307== Preferring higher priority redirection:
--26307-- old: 0x04a1c940 (__memcpy_avx_unalign) R-> (2018.0) 0x04850f90
__memcpy_avx_unaligned_erms
--26307-- new: 0x04a1c940 (__memcpy_avx_unalign) R-> (2018.1) 0x04852880
memmove
--26307-- REDIR: 0x4941470 (libc.so.6:wcscmp) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4925a60 (libc.so.6:stpncpy) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4941a30 (libc.so.6:wmemchr) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x49248b0 (libc.so.6:strncmp) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4925af0 (libc.so.6:strcasecmp) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x49244a0 (libc.so.6:strcspn) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x49414f0 (libc.so.6:wcscpy) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4924250 (libc.so.6:strcat) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4925be0 (libc.so.6:strncasecmp_l) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4925500 (libc.so.6:bcmp) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x492d5f0 (libc.so.6:memrchr) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4927090 (libc.so.6:strchrnul) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4924410 (libc.so.6:strcpy) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4925b90 (libc.so.6:strcasecmp_l) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4924720 (libc.so.6:strlen) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4924950 (libc.so.6:strncpy) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x49259d0 (libc.so.6:stpcpy) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4925470 (libc.so.6:memchr) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4924b80 (libc.so.6:strspn) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4925850 (libc.so.6:mempcpy) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4925b40 (libc.so.6:strncasecmp) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4927000 (libc.so.6:rawmemchr) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26307-- REDIR: 0x4a19790 (libc.so.6:__strrchr_avx2) redirected to 0x484e810
(rindex)
--26307-- REDIR: 0x4921120 (libc.so.6:malloc) redirected to 0x4848820 (malloc)
--26307-- REDIR: 0x4921460 (libc.so.6:free) redirected to 0x484b210 (free)
==26307==
==26307== HEAP SUMMARY:
==26307== in use at exit: 100 bytes in 1 blocks
==26307== total heap usage: 1 allocs, 0 frees, 100 bytes allocated
==26307==
==26307== Searching for pointers to 1 not-freed blocks
==26307== Checked 108,056 bytes
==26307==
==26307== 100 bytes in 1 blocks are still reachable in loss record 1 of 1
==26307== at 0x4848899: malloc (vg_replace_malloc.c:381)
==26307== by 0x10917E: main (test_exit.c:6)
==26307==
==26307== LEAK SUMMARY:
==26307== definitely lost: 0 bytes in 0 blocks
==26307== indirectly lost: 0 bytes in 0 blocks
==26307== possibly lost: 0 bytes in 0 blocks
==26307== still reachable: 100 bytes in 1 blocks
==26307== suppressed: 0 bytes in 0 blocks
==26307==
==26307== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
```
test_return.c
```
==26315== Memcheck, a memory error detector
==26315== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==26315== Using Valgrind-3.18.1-42b08ed5bd-20211015 and LibVEX; rerun with -h
for copyright info
==26315== Command: ./test_return
==26315==
--26315-- Valgrind options:
--26315-- -v
--26315-- -s
--26315-- --leak-check=full
--26315-- --show-leak-kinds=all
--26315-- Contents of /proc/version:
--26315-- Linux version 5.4.72-microsoft-standard-WSL2 (oe-user@oe-host) (gcc
version 8.2.0 (GCC)) #1 SMP Wed Oct 28 23:40:43 UTC 2020
--26315--
--26315-- Arch and hwcaps: AMD64, LittleEndian,
amd64-cx16-lzcnt-rdtscp-sse3-ssse3-avx-avx2-bmi-f16c-rdrand-rdseed
--26315-- Page sizes: currently 4096, max supported 4096
--26315-- Valgrind library directory: /usr/libexec/valgrind
--26315-- Reading syms from /tmp/tmp.wURL71ZPmz/test_return
--26315-- Reading syms from /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
--26315-- Considering
/usr/lib/debug/.build-id/61/ef896a699bb1c2e4e231642b2e1688b2f1a61e.debug ..
--26315-- .. build-id is valid
--26315-- Reading syms from /usr/libexec/valgrind/memcheck-amd64-linux
--26315-- Considering
/usr/lib/debug/.build-id/84/fedd9a4c04941b8d123398ad0dd0ebc25c120c.debug ..
--26315-- .. build-id is valid
--26315-- object doesn't have a dynamic symbol table
--26315-- Scheduler: using generic scheduler lock implementation.
--26315-- Reading suppressions file: /usr/libexec/valgrind/default.supp
==26315== embedded gdbserver: reading from
/tmp/vgdb-pipe-from-vgdb-to-26315-by-dylanb-on-???
==26315== embedded gdbserver: writing to
/tmp/vgdb-pipe-to-vgdb-from-26315-by-dylanb-on-???
==26315== embedded gdbserver: shared mem
/tmp/vgdb-pipe-shared-mem-vgdb-26315-by-dylanb-on-???
==26315==
==26315== TO CONTROL THIS PROCESS USING vgdb (which you probably
==26315== don't want to do, unless you know exactly what you're doing,
==26315== or are doing some strange experiment):
==26315== /usr/bin/vgdb --pid=26315 ...command...
==26315==
==26315== TO DEBUG THIS PROCESS USING GDB: start GDB like this
==26315== /path/to/gdb ./test_return
==26315== and then give GDB the following command
==26315== target remote | /usr/bin/vgdb --pid=26315
==26315== --pid is optional if only one valgrind process is running
==26315==
--26315-- REDIR: 0x402aa60 (ld-linux-x86-64.so.2:strlen) redirected to
0x580bcec2 (vgPlain_amd64_linux_REDIR_FOR_strlen)
--26315-- REDIR: 0x402a830 (ld-linux-x86-64.so.2:index) redirected to
0x580bcedc (vgPlain_amd64_linux_REDIR_FOR_index)
--26315-- Reading syms from /usr/libexec/valgrind/vgpreload_core-amd64-linux.so
--26315-- Considering
/usr/lib/debug/.build-id/7b/e1c1588ba6713462a4091c80bbb78004f47ba6.debug ..
--26315-- .. build-id is valid
--26315-- Reading syms from
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so
--26315-- Considering
/usr/lib/debug/.build-id/ca/411cf3a4b32c9d21bbc464935b0f1af28fb2d8.debug ..
--26315-- .. build-id is valid
==26315== WARNING: new redirection conflicts with existing -- ignoring it
--26315-- old: 0x0402aa60 (strlen ) R-> (0000.0) 0x580bcec2
vgPlain_amd64_linux_REDIR_FOR_strlen
--26315-- new: 0x0402aa60 (strlen ) R-> (2007.0) 0x0484ee30
strlen
--26315-- REDIR: 0x4027240 (ld-linux-x86-64.so.2:strcmp) redirected to
0x484fcd0 (strcmp)
--26315-- REDIR: 0x402afc0 (ld-linux-x86-64.so.2:mempcpy) redirected to
0x4853840 (mempcpy)
--26315-- Reading syms from /usr/lib/x86_64-linux-gnu/libc.so.6
--26315-- Considering
/usr/lib/debug/.build-id/69/389d485a9793dbe873f0ea2c93e02efaa9aa3d.debug ..
--26315-- .. build-id is valid
==26315== WARNING: new redirection conflicts with existing -- ignoring it
--26315-- old: 0x04921ce0 (memalign ) R-> (1011.0) 0x0484e080
memalign
--26315-- new: 0x04921ce0 (memalign ) R-> (1017.0) 0x0484e050
aligned_alloc
==26315== WARNING: new redirection conflicts with existing -- ignoring it
--26315-- old: 0x04921ce0 (memalign ) R-> (1011.0) 0x0484e080
memalign
--26315-- new: 0x04921ce0 (memalign ) R-> (1017.0) 0x0484e020
aligned_alloc
==26315== WARNING: new redirection conflicts with existing -- ignoring it
--26315-- old: 0x04921ce0 (memalign ) R-> (1011.0) 0x0484e080
memalign
--26315-- new: 0x04921ce0 (memalign ) R-> (1017.0) 0x0484e050
aligned_alloc
==26315== WARNING: new redirection conflicts with existing -- ignoring it
--26315-- old: 0x04921ce0 (memalign ) R-> (1011.0) 0x0484e080
memalign
--26315-- new: 0x04921ce0 (memalign ) R-> (1017.0) 0x0484e020
aligned_alloc
--26315-- REDIR: 0x49247a0 (libc.so.6:strnlen) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4924a60 (libc.so.6:strpbrk) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4924360 (libc.so.6:strcmp) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4942d50 (libc.so.6:wcsnlen) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4925750 (libc.so.6:memset) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x49415c0 (libc.so.6:wcslen) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4925c90 (libc.so.6:memcpy@@GLIBC_2.14) redirected to
0x483f220 (_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x49413f0 (libc.so.6:wcschr) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x49242e0 (libc.so.6:index) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x49249e0 (libc.so.6:rindex) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4925620 (libc.so.6:memmove) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
==26315== Preferring higher priority redirection:
--26315-- old: 0x04a1c940 (__memcpy_avx_unalign) R-> (2018.0) 0x04850f90
__memcpy_avx_unaligned_erms
--26315-- new: 0x04a1c940 (__memcpy_avx_unalign) R-> (2018.1) 0x04852880
memmove
--26315-- REDIR: 0x4941470 (libc.so.6:wcscmp) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4925a60 (libc.so.6:stpncpy) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4941a30 (libc.so.6:wmemchr) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x49248b0 (libc.so.6:strncmp) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4925af0 (libc.so.6:strcasecmp) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x49244a0 (libc.so.6:strcspn) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x49414f0 (libc.so.6:wcscpy) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4924250 (libc.so.6:strcat) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4925be0 (libc.so.6:strncasecmp_l) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4925500 (libc.so.6:bcmp) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x492d5f0 (libc.so.6:memrchr) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4927090 (libc.so.6:strchrnul) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4924410 (libc.so.6:strcpy) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4925b90 (libc.so.6:strcasecmp_l) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4924720 (libc.so.6:strlen) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4924950 (libc.so.6:strncpy) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x49259d0 (libc.so.6:stpcpy) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4925470 (libc.so.6:memchr) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4924b80 (libc.so.6:strspn) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4925850 (libc.so.6:mempcpy) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4925b40 (libc.so.6:strncasecmp) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4927000 (libc.so.6:rawmemchr) redirected to 0x483f220
(_vgnU_ifunc_wrapper)
--26315-- REDIR: 0x4a19790 (libc.so.6:__strrchr_avx2) redirected to 0x484e810
(rindex)
--26315-- REDIR: 0x4921120 (libc.so.6:malloc) redirected to 0x4848820 (malloc)
--26315-- REDIR: 0x4921460 (libc.so.6:free) redirected to 0x484b210 (free)
==26315==
==26315== HEAP SUMMARY:
==26315== in use at exit: 100 bytes in 1 blocks
==26315== total heap usage: 1 allocs, 0 frees, 100 bytes allocated
==26315==
==26315== Searching for pointers to 1 not-freed blocks
==26315== Checked 108,032 bytes
==26315==
==26315== 100 bytes in 1 blocks are definitely lost in loss record 1 of 1
==26315== at 0x4848899: malloc (vg_replace_malloc.c:381)
==26315== by 0x10915E: main (test_return.c:6)
==26315==
==26315== LEAK SUMMARY:
==26315== definitely lost: 100 bytes in 1 blocks
==26315== indirectly lost: 0 bytes in 0 blocks
==26315== possibly lost: 0 bytes in 0 blocks
==26315== still reachable: 0 bytes in 0 blocks
==26315== suppressed: 0 bytes in 0 blocks
==26315==
==26315== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
```
--
You are receiving this mail because:
You are watching all bug changes.