Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Sat, 28 Mar 2020 16:39:38 -0700
From: Andrew McKinlay <mckinlay.andrew@...il.com>
To: musl@...ts.openwall.com
Subject: Valgrind errors when running simple program

Running

```
int main(void) {
}
```

through Valgrind produces errors:

```
ubuntu@...mary:~/env_stuff$ valgrind --leak-check=full
--show-leak-kinds=all -v ./a.out
==3492== Memcheck, a memory error detector
==3492== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==3492== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==3492== Command: ./a.out
==3492==
--3492-- Valgrind options:
--3492--    --leak-check=full
--3492--    --show-leak-kinds=all
--3492--    -v
--3492-- Contents of /proc/version:
--3492--   Linux version 4.15.0-91-generic (buildd@...01-amd64-013)
(gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)) #92-Ubuntu SMP Fri
Feb 28 11:09:48 UTC 2020
--3492--
--3492-- Arch and hwcaps: AMD64, LittleEndian,
amd64-cx16-lzcnt-sse3-avx-avx2-bmi
--3492-- Page sizes: currently 4096, max supported 4096
--3492-- Valgrind library directory: /usr/lib/valgrind
--3492-- Reading syms from /home/ubuntu/env_stuff/a.out
--3492-- Reading syms from /lib/x86_64-linux-musl/libc.so
--3492--    object doesn't have a symbol table
--3492-- Reading syms from /usr/lib/valgrind/memcheck-amd64-linux
--3492--   Considering /usr/lib/valgrind/memcheck-amd64-linux ..
--3492--   .. CRC mismatch (computed 41ddb025 wanted 9972f546)
--3492--    object doesn't have a symbol table
--3492--    object doesn't have a dynamic symbol table
--3492-- Scheduler: using generic scheduler lock implementation.
--3492-- Reading suppressions file: /usr/lib/valgrind/default.supp
==3492== embedded gdbserver: reading from
/tmp/vgdb-pipe-from-vgdb-to-3492-by-ubuntu-on-???
==3492== embedded gdbserver: writing to
/tmp/vgdb-pipe-to-vgdb-from-3492-by-ubuntu-on-???
==3492== embedded gdbserver: shared mem
/tmp/vgdb-pipe-shared-mem-vgdb-3492-by-ubuntu-on-???
==3492==
==3492== TO CONTROL THIS PROCESS USING vgdb (which you probably
==3492== don't want to do, unless you know exactly what you're doing,
==3492== or are doing some strange experiment):
==3492==   /usr/lib/valgrind/../../bin/vgdb --pid=3492 ...command...
==3492==
==3492== TO DEBUG THIS PROCESS USING GDB: start GDB like this
==3492==   /path/to/gdb ./a.out
==3492== and then give GDB the following command
==3492==   target remote | /usr/lib/valgrind/../../bin/vgdb --pid=3492
==3492== --pid is optional if only one valgrind process is running
==3492==
--3492-- Reading syms from /usr/lib/valgrind/vgpreload_core-amd64-linux.so
--3492--   Considering /usr/lib/valgrind/vgpreload_core-amd64-linux.so ..
--3492--   .. CRC mismatch (computed 50df1b30 wanted 4800a4cf)
--3492--    object doesn't have a symbol table
--3492-- Reading syms from /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so
--3492--   Considering /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so ..
--3492--   .. CRC mismatch (computed f893b962 wanted 95ee359e)
--3492--    object doesn't have a symbol table
--3492-- REDIR: 0x402a660 (NONE:free) redirected to 0x4cb3cd0 (free)
==3492== Invalid free() / delete / delete[] / realloc()
==3492==    at 0x4CB3D3B: free (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==3492==    by 0x40717F3: ??? (in /lib/x86_64-linux-musl/libc.so)
==3492==    by 0x1FFF000FAB: ???
==3492==    by 0x1FFF00022F: ???
==3492==    by 0x1FFEFFFE9F: ???
==3492==    by 0x4072D1E: ??? (in /lib/x86_64-linux-musl/libc.so)
==3492==  Address 0x4ebe160 is in a rw- mapped file
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so segment
==3492==
--3492-- REDIR: 0x4029f10 (NONE:calloc) redirected to 0x4cb4a70 (calloc)
Error relocating /usr/lib/valgrind/vgpreload_core-amd64-linux.so:
__libc_freeres: symbol not found
==3492== Jump to the invalid address stated on the next line
==3492==    at 0x556: ???
==3492==    by 0x406F8B8: _exit (in /lib/x86_64-linux-musl/libc.so)
==3492==    by 0x1FFF0006FE: ???
==3492==  Address 0x556 is not stack'd, malloc'd or (recently) free'd
==3492==
==3492==
==3492== Process terminating with default action of signal 11 (SIGSEGV)
==3492==  Bad permissions for mapped region at address 0x556
==3492==    at 0x556: ???
==3492==    by 0x406F8B8: _exit (in /lib/x86_64-linux-musl/libc.so)
==3492==    by 0x1FFF0006FE: ???
==3492==
==3492== HEAP SUMMARY:
==3492==     in use at exit: 404 bytes in 1 blocks
==3492==   total heap usage: 1 allocs, 1 frees, 404 bytes allocated
==3492==
==3492== Searching for pointers to 1 not-freed blocks
==3492== Checked 32,584 bytes
==3492==
==3492== 404 bytes in 1 blocks are still reachable in loss record 1 of 1
==3492==    at 0x4CB4B25: calloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==3492==    by 0x40729D9: ??? (in /lib/x86_64-linux-musl/libc.so)
==3492==    by 0x4073933: __dls3 (in /lib/x86_64-linux-musl/libc.so)
==3492==    by 0x1FFF0006FE: ???
==3492==
==3492== LEAK SUMMARY:
==3492==    definitely lost: 0 bytes in 0 blocks
==3492==    indirectly lost: 0 bytes in 0 blocks
==3492==      possibly lost: 0 bytes in 0 blocks
==3492==    still reachable: 404 bytes in 1 blocks
==3492==         suppressed: 0 bytes in 0 blocks
==3492==
==3492== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
==3492==
==3492== 1 errors in context 1 of 2:
==3492== Jump to the invalid address stated on the next line
==3492==    at 0x556: ???
==3492==    by 0x406F8B8: _exit (in /lib/x86_64-linux-musl/libc.so)
==3492==    by 0x1FFF0006FE: ???
==3492==  Address 0x556 is not stack'd, malloc'd or (recently) free'd
==3492==
==3492==
==3492== 1 errors in context 2 of 2:
==3492== Invalid free() / delete / delete[] / realloc()
==3492==    at 0x4CB3D3B: free (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==3492==    by 0x40717F3: ??? (in /lib/x86_64-linux-musl/libc.so)
==3492==    by 0x1FFF000FAB: ???
==3492==    by 0x1FFF00022F: ???
==3492==    by 0x1FFEFFFE9F: ???
==3492==    by 0x4072D1E: ??? (in /lib/x86_64-linux-musl/libc.so)
==3492==  Address 0x4ebe160 is in a rw- mapped file
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so segment
==3492==
==3492== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
```

I am attempting to set up Valgrind to find bugs in musl's environment
functions, but I can't even get a basic program to validate. Any ideas
for what I need to do next?

Versions:

```
ubuntu@...mary:~/env_stuff$ /lib/x86_64-linux-musl/libc.so
musl libc (x86_64)
Version 1.1.19
Dynamic Program Loader
Usage: /lib/x86_64-linux-musl/libc.so [options] [--] pathname [args]

ubuntu@...mary:~/env_stuff$ musl-gcc --version
cc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ubuntu@...mary:~/env_stuff$ valgrind --version
valgrind-3.13.0
```

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.