blob: eb7fc2cb4d23c92e9bb19928e074eba3c81e9760 [file] [log] [blame]
##----------------------------------------------------------------------##
# Errors to suppress by default with glibc 2.3.x
# Format of this file is:
# {
# name_of_suppression
# tool_name:supp_kind
# (optional extra info for some suppression types)
# caller0 name, or /name/of/so/file.so
# caller1 name, or ditto
# (optionally: caller2 name)
# (optionally: caller3 name)
# }
#
# For Memcheck, the supp_kinds are:
#
# Param Value1 Value2 Value4 Value8 Value16
# 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)
{
__GI___stpcpy/*
Memcheck:Cond
fun:__GI___stpcpy
fun:*
}
{
strlen/__GI__dl_open/dlopen_doit
Memcheck:Cond
fun:strlen
fun:__GI__dl_open
fun:dlopen_doit
}
{
strlen/_dl_signal_cerror/_dl_lookup_symbol_internal/do_dlsym
Memcheck:Cond
fun:_dl_signal_cerror
fun:_dl_lookup_symbol_internal
fun:do_dlsym
}
{
strlen/*dl_map_object*(Cond)
Memcheck:Cond
fun:strlen
fun:*dl_map_object*
}
{
strlen/*dl_open_worker*(Cond)
Memcheck:Cond
fun:strlen
fun:*dl_open_worker*
}
{
strlen/_dl_sym/dlsym_doit
Memcheck:Cond
fun:strlen
fun:_dl_sym
fun:dlsym_doit
}
{
realpath is inefficiently coded
Addrcheck,Memcheck:Overlap
fun:memcpy
fun:realpath*
}
{
realpath stupidity part II
Addrcheck,Memcheck:Overlap
fun:strcpy
fun:realpath*
}
{
strlen/decompose_rpath/_dl_map_object
Memcheck:Cond
fun:strlen
fun:decompose_rpath
fun:*dl_map_object*
}
{
stpcpy/_dl_sym*
Memcheck:Cond
fun:__stpcpy
fun:_dl_*
}
#-------- For R H 8.0
{
elf_dynamic_do_rel.7/_dl_relocate_object_internal/dl_open_worker(Cond)
Memcheck:Cond
fun:elf_dynamic_do_rel.7
fun:_dl_relocate_object_internal
fun:dl_open_worker
}
{
dl_relocate/dl_open_worker
Memcheck:Cond
fun:_dl_relocate_object_internal
fun:dl_open_worker
}
#-------- glibc 2.3.2/ Fedora Core 1
{
dl_relocate/dl_main
Memcheck:Cond
fun:_dl_relocate_object_internal
fun:dl_main
}
#-------- glibc 2.3.3/ Fedora Core 2
{
dl_relocate_object/dl_main
Memcheck:Cond
fun:_dl_relocate_object
fun:dl_main
}
{
_dl_relocate_object/dl_open_worker
Memcheck:Cond
fun:_dl_relocate_object
fun:dl_open_worker
}
#-------- glibc 2.3.4/ Fedora Core 3
{
dl_relocate_object
Memcheck:Cond
fun:_dl_relocate_object
}
#-------- Data races
{
_dl_lookup_symbol_internal/fixup/_dl_runtime_resolve
Helgrind:Eraser
fun:_dl_lookup_symbol_internal
fun:fixup
fun:_dl_runtime_resolve
}
{
_dl_lookup_symbol_x/fixup/_dl_runtime_resolve
Helgrind:Eraser
fun:_dl_lookup_symbol_x
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_lookup_versioned_symbol/ld-2.3.2.so/ld-2.3.2.so
Helgrind:Eraser
fun:_dl_lookup_versioned_symbol
obj:/lib/ld-2.3.2.so
obj:/lib/ld-2.3.2.so
}
{
_dl_lookup_symbol/ld-2.3.2.so/ld-2.3.2.so
Helgrind:Eraser
fun:_dl_lookup_symbol
obj:/lib/ld-2.3.2.so
obj:/lib/ld-2.3.2.so
}
{
_dl_fini
Helgrind:Eraser
fun:_dl_fini
}
{
ld-2.3.2.so/exit/__libc_start_main
Helgrind:Eraser
obj:/lib/ld-2.3.2.so
fun:exit
fun:__libc_start_main
}
#-------- 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
}
##----------------------------------------------------------------------##
## Bugs in helper library supplied with Intel Icc 7.0 (65)
## in /opt/intel/compiler70/ia32/lib/libcxa.so.3
{
Intel compiler70/ia32/lib/libcxa.so.3 below-esp accesses
Addrcheck,Memcheck:Addr4
obj:/opt/intel/compiler70/ia32/lib/libcxa.so.3
}
##----------------------------------------------------------------------##
## SuSE 9 after FV changes (post 2.1.0)
{
strlen/_dl_init_paths/dl_main/_dl_sysdep_start(Cond)
Memcheck:Cond
fun:strlen
fun:_dl_init_paths
fun:dl_main
fun:_dl_sysdep_start
}
{
Ugly strchr error in /lib/ld-2.3.2.so
Memcheck:Cond
obj:/lib/ld-2.3.2.so
}
##----------------------------------------------------------------------##
## SuSE 9.1 with post 2.1.2
{
Ugly strchr error in /lib/ld-2.3.3.so
Memcheck:Cond
obj:/lib/ld-2.3.3.so
}
##----------------------------------------------------------------------##
## SuSE 9.1 with 3.0 branch (x86)
{
Strstr dubiousness in pthread_initialize
Memcheck:Cond
fun:strstr
fun:pthread_initialize
obj:/lib/libpthread.so.0
obj:/lib/libpthread.so.0
}
##----------------------------------------------------------------------##
## glibc-2.3.3 on FC2
## Assumes that sysctl returns \0-terminated strings in is_smp_system
#{
# Unterminated strstr string in is_smp_system() (NPTL)
# Memcheck:Cond
# fun:strstr
# fun:__pthread_initialize_minimal
# obj:/lib/tls/libpthread*.so*
# obj:/lib/tls/libpthread*.so*
#}
#{
# Unterminated strstr string in is_smp_system() (LinuxThreads)
# Memcheck:Cond
# fun:strstr
# fun:pthread_initialize
# obj:/lib/i686/libpthread*.so*
# obj:/lib/i686/libpthread*.so*
#}
#{
# Unterminated strstr string in is_smp_system() (LinuxThreads)
# Memcheck:Cond
# fun:strstr
# fun:pthread_initialize
# obj:/lib/libpthread-0.10.so
# obj:/lib/libpthread-0.10.so
#}
## Bug in PRE(sys_clone), really. Some args are not used.
{
LinuxThread clone use (parent_tidptr)
Memcheck:Param
clone(parent_tidptr)
fun:clone
fun:pthread_create
}
{
LinuxThread clone use (child_tidptr)
Memcheck:Param
clone(child_tidptr)
fun:clone
fun:pthread_create
}
{
LinuxThread clone use (tlsinfo)
Memcheck:Param
clone(tlsinfo)
fun:clone
fun:pthread_create
}
{
LinuxThread clone use (parent_tidptr)
Memcheck:Param
clone(parent_tidptr)
fun:clone
fun:pthread_create@@GLIBC_2.1
}
{
LinuxThread clone use (child_tidptr)
Memcheck:Param
clone(child_tidptr)
fun:clone
fun:pthread_create@@GLIBC_2.1
}
{
LinuxThread clone use (tlsinfo)
Memcheck:Param
clone(tlsinfo)
fun:clone
fun:pthread_create@@GLIBC_2.1
}
## LinuxThreads manager writes messages containing undefined bytes
{
LinuxThreads: write/pthread_onexit_process
Memcheck:Param
write(buf)
fun:pthread_onexit_process
fun:exit
}
{
LinuxThreads: write/pthread_join
Memcheck:Param
write(buf)
fun:pthread_join
}
{
LinuxThreads: write/pthread_create
Memcheck:Param
write(buf)
fun:pthread_create@@GLIBC_2.1
}
{
LinuxThreads: write/__pthread_initialize_manager/pthread_create
Memcheck:Param
write(buf)
fun:__pthread_initialize_manager
fun:pthread_create@@GLIBC_2.1
}
{
LinuxThreads: write/pthread_create
Memcheck:Param
write(buf)
fun:write
fun:pthread_create
}
## 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
}
##----------------------------------------------------------------------##
## glibc-2.3.4 on FC3
## Assumes that sysctl returns \0-terminated strings in is_smp_system
#{
# Unterminated strstr string in is_smp_system() (NPTL)
# Memcheck:Cond
# fun:strstr
# fun:__pthread_initialize_minimal
# obj:/lib/tls/libpthread-2.3.4.so
# obj:/lib/tls/libpthread-2.3.4.so
#}
#{
# Unterminated strstr string in is_smp_system() (NPTL)
# Memcheck:Cond
# fun:strstr
# fun:__pthread_initialize_minimal
# obj:/lib64/tls/libpthread*.so*
#}
##----------------------------------------------------------------------##
## glibc-2.3.5 on FC4
## Assumes that sysctl returns \0-terminated strings in is_smp_system
#{
# Unterminated strstr string in is_smp_system() (NPTL)
# Memcheck:Cond
# fun:strstr
# fun:__pthread_initialize_minimal
# obj:*/libpthread-2.3.5.so
# obj:*/libpthread-2.3.5.so
#}
##----------------------------------------------------------------------##
## glibc-2.3.5 on SuSE 10.0 (PPC)
#
# I don't know why this is needed, but still:
{
glibc-2.3.5-on-SuSE-10.0-(PPC)-1
Memcheck:Cond
fun:_dl_start
fun:_start
}
##----------------------------------------------------------------------##
# Hacks pertaining to the fact that our intercept mechanism can't
# always get hold of strlen early enough, due to idiocy in the low
# level memory manager.
## HACK to do with strlen not being intercepted early enough
{
strlen-not-intercepted-early-enough-HACK-1
Memcheck:Addr4
fun:strlen
fun:_dl_map_object_from_fd
fun:_dl_map_object
}
{
strlen-not-intercepted-early-enough-HACK-2
Memcheck:Addr4
fun:strlen
fun:decompose_rpath
fun:cache_rpath
fun:_dl_map_object
}
{
strlen-not-intercepted-early-enough-HACK-3
Memcheck:Cond
fun:strlen
fun:_dl_new_object
fun:_dl_map_object_from_fd
fun:_dl_map_object
}
{
strlen-not-intercepted-early-enough-HACK-4
Memcheck:Cond
fun:strlen
fun:expand_dynamic_string_token
fun:_dl_map_object
}
{
strlen-not-intercepted-early-enough-HACK-5
Memcheck:Cond
fun:strlen
fun:fillin_rpath
fun:_dl_init_paths
}
## HACK to do with index not being intercepted early enough
{
index-not-intercepted-early-enough-HACK-1
Memcheck:Cond
fun:index
obj:*
fun:_dl_map_object
}
{
index-not-intercepted-early-enough-HACK-2
Memcheck:Cond
fun:index
fun:_dl_map_object
obj:*
fun:_dl_catch_error
}
{
index-not-intercepted-early-enough-HACK-3
Memcheck:Cond
fun:index
fun:_dl_map_object
obj:*
fun:_dl_sysdep_start
}