#
# For Memcheck, the supp_kinds are:
#
-# Param Value1 Value2 Value4 Value8 Value16
+# Param Value1 Value2 Value4 Value8 Value16 Jump
# Free Addr1 Addr2 Addr4 Addr8 Addr16
# Cond (previously known as Value0)
#
# and the optional extra info is:
# if Param: name of system call param
-# if Free: name of free-ing fn)
#-------- For SuSE 8.2 (gcc 3.3, glibc 2.3.2)
{
Memcheck:Cond
fun:_dl_relocate_object_internal
}
+{
+ index/*-2.2.5.so/*-2.2.5.so
+ Memcheck:Cond
+ fun:index
+ obj:*-2.2.5.so
+ obj:*-2.2.5.so
+}
+{
+ Red Hat 7.3 #4
+ Memcheck:Cond
+ fun:strlen
+ fun:dl_main
+ fun:_dl_sysdep_start
+}
#-------- SuSE 8.1 stuff (gcc-3.2, glibc-2.2.5 + SuSE's hacks)
{
}
{
trecurse/__gconv_release_shlib(Addr4)
- Addrcheck,Memcheck:Addr4
+ Memcheck:Addr4
fun:trecurse
fun:__gconv_release_shlib
}
{
do_release_shlib/trecurse(Addr4)
- Addrcheck,Memcheck:Addr4
+ Memcheck:Addr4
fun:do_release_shlib
fun:trecurse
}
{
__twalk/*(Addr4)
- Addrcheck,Memcheck:Addr4
+ Memcheck:Addr4
fun:__twalk
}
{
do_release_shlib/__twalk(Addr4)
- Addrcheck,Memcheck:Addr4
+ Memcheck:Addr4
fun:do_release_shlib
fun:__twalk
}
{
__libc_freeres/free_mem/free(Free)
- Addrcheck,Memcheck:Free
+ Memcheck:Free
fun:free
fun:free_mem
fun:__libc_freeres
}
-#-------- Data races
-{
- _dl_lookup_symbol/fixup/_dl_runtime_resolve
- Helgrind:Eraser
- fun:_dl_lookup_symbol
- fun:fixup
- fun:_dl_runtime_resolve
-}
-
-{
- _dl_lookup_symbol_internal/fixup/_dl_runtime_resolve
- Helgrind:Eraser
- fun:_dl_lookup_symbol_internal
- fun:fixup
- fun:_dl_runtime_resolve
-}
-
-{
- _dl_lookup_versioned_symbol/fixup/_dl_runtime_resolve
- Helgrind:Eraser
- fun:_dl_lookup_versioned_symbol
- fun:fixup
- fun:_dl_runtime_resolve
-}
-
-{
- _dl_lookup_versioned_symbol_internal/fixup/_dl_runtime_resolve
- Helgrind:Eraser
- fun:_dl_lookup_versioned_symbol_internal
- fun:fixup
- fun:_dl_runtime_resolve
-}
-
-{
- _dl_fini/exit/__libc_start_main
- Helgrind:Eraser
- fun:_dl_fini
- fun:exit
- fun:__libc_start_main
-}
-
-{
- _dl_map_object_deps/dl_open_worker/_dl_catch_error/_dl_open
- Helgrind:Eraser
- fun:_dl_map_object_deps
- fun:dl_open_worker
- fun:_dl_catch_error
- fun:_dl_open
-}
-
-{
- _dl_map_object_deps_internal/dl_open_worker/_dl_catch_error_internal/_dl_open
- Helgrind:Eraser
- fun:_dl_map_object_deps_internal
- fun:dl_open_worker
- fun:_dl_catch_error_internal
- fun:_dl_open
-}
-
-#-------- Threading bugs?
-# glibc 'knows' that destroying a locked mutex will unlock it
-{
- pthread_error/pthread_mutex_destroy/__closedir
- core:PThread
- fun:pthread_error
- fun:pthread_mutex_destroy
- fun:__closedir
-}
-
-{
- pthread_error/pthread_mutex_destroy/_IO_default_finish
- core:PThread
- fun:pthread_error
- fun:pthread_mutex_destroy
- fun:_IO_default_finish*
-}
-
-{
- pthread_mutex_unlock/_IO_funlockfile
- core:PThread
- fun:pthread_mutex_unlock
- fun:_IO_funlockfile
-}
-
# even more glibc suppressions ?
{
libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Cond)
# two:
{
__mpn_construct_double/*(Addr4)
- Addrcheck,Memcheck:Addr4
+ Memcheck:Addr4
fun:__mpn_construct_double
fun:*
}
{
__mpn_construct_double/*(Addr8)
- Addrcheck,Memcheck:Addr8
+ Memcheck:Addr8
fun:__mpn_construct_double
fun:*
}
# More of the same (gcc bug, I'm pretty sure)
{
__fabs/*(Addr4)
- Addrcheck,Memcheck:Addr4
+ Memcheck:Addr4
fun:__fabs
fun:*
}
{
__fabs/*(Addr8)
- Addrcheck,Memcheck:Addr8
+ Memcheck:Addr8
fun:__fabs
fun:*
}
# Not sure what this is about ... but anyway
{
pthread_sighandler/*(Addr4)
- Addrcheck,Memcheck:Addr4
+ Memcheck:Addr4
fun:pthread_sighandler
fun:*
}
#-------- glibc 2.2.5/ Debian 3.0
{
- _dl_start/ld-2.2.5.so(Cond)
+ _dl_start(Cond)
Memcheck:Cond
fun:_dl_start
- obj:/lib/ld-2.2.5.so
+}
+
+{
+ _dl_start(Cond)
+ Memcheck:Cond
+ fun:_dl_relocate_object
}
#-------------------
{
socketcall.connect(serv_addr)/connect/*
- Addrcheck,Memcheck:Param
+ Memcheck:Param
socketcall.connect(serv_addr)
fun:connect
fun:*
}
{
socketcall.connect(serv_addr)/libc-2.2.4.so/libc-2.2.4.so
- Addrcheck,Memcheck:Param
+ Memcheck:Param
socketcall.connect(serv_addr)
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
#----------------------
{
write(buf)/write/libX11.so.6.2/libX11.so.6.2(Param)
- Addrcheck,Memcheck:Param
+ Memcheck:Param
write(buf)
fun:write
obj:/usr/X11R6/lib/libX11.so.6.2
}
{
write(buf)/libc-2.2.4.so/libX11.so.6.2/libX11.so.6.2(Param)
- Addrcheck,Memcheck:Param
+ Memcheck:Param
write(buf)
obj:*libc-2.2.?.so
obj:/usr/X11R6/lib/libX11.so.6.2
{
writev(vector[...])/__writev/libX11.so.6.2/libX11.so.6.2
- Addrcheck,Memcheck:Param
+ Memcheck:Param
writev(vector[...])
fun:__writev
obj:/usr/X11R6/lib/libX11.so.6.2
obj:/usr/X11R6/lib/libXt.so.6.0
}
-# LinuxThreads suppressesion
+## Bug in PRE(sys_clone), really. Some args are not used.
+{
+ LinuxThread clone use (child_tidptr)
+ Memcheck:Param
+ clone(child_tidptr)
+ fun:clone
+ fun:__pthread_initialize_manager
+ fun:pthread_create@@GLIBC_2.2.5
+}
+
+## LinuxThreads manager writes messages containing undefined bytes
{
LinuxThreads: write/pthread_create
Memcheck:Param
fun:write
fun:pthread_create@@GLIBC_2.1
}
+{
+ LinuxThreads: write/pthread_onexit_process
+ Memcheck:Param
+ write(buf)
+ fun:write
+ fun:pthread_onexit_process
+ fun:exit
+}
+{
+ LinuxThreads: write/pthread_join
+ Memcheck:Param
+ write(buf)
+ fun:write
+ fun:pthread_join
+}
+{
+ LinuxThreads: write/pthread_create
+ Memcheck:Param
+ write(buf)
+ fun:write
+ fun:pthread_create@@GLIBC_2.2.5
+}
+{
+ LinuxThreads: write/__pthread_initialize_manager/pthread_create
+ Memcheck:Param
+ write(buf)
+ fun:write
+ fun:__pthread_initialize_manager
+ fun:pthread_create@@GLIBC_2.2.5
+}
+
+## LinuxThreads leaks the stack and TLS data for the manager thread
+{
+ LinuxThreads: leaks stack of manager thread
+ Memcheck:Leak
+ fun:malloc
+ fun:__pthread_initialize_manager
+ fun:pthread_create@@GLIBC_2.1
+}
+{
+ LinuxThreads: leaks TLS data for manager thread
+ Memcheck:Leak
+ fun:calloc
+ fun:_dl_allocate_tls
+ fun:__pthread_initialize_minimal
+}
+{
+ LinuxThreads: leaks TLS data for manager thread
+ Memcheck:Leak
+ fun:memalign
+ fun:_dl_allocate_tls
+ fun:__pthread_initialize_minimal
+}
+{
+ LinuxThreads: leaks stack of manager thread
+ Memcheck:Leak
+ fun:malloc
+ fun:__pthread_initialize_manager
+ fun:pthread_create@@GLIBC_2.2.5
+}
+{
+ LinuxThreads: leaks TLS data for manager thread
+ Memcheck:Leak
+ fun:calloc
+ fun:allocate_dtv
+ fun:_dl_allocate_tls_storage
+ fun:_dl_allocate_tls
+ fun:__pthread_initialize_minimal
+}
+{
+ LinuxThreads: leaks TLS data for manager thread
+ Memcheck:Leak
+ fun:memalign
+ fun:_dl_allocate_tls_storage
+ fun:_dl_allocate_tls
+ fun:__pthread_initialize_minimal
+}