# Format of this file is:
# {
# name_of_suppression
-# kind: one of Param Value1 Value2 Value4 Value8
-# Free Addr1 Addr2 Addr4 Addr8
-# Cond (previously known as Value0)
-# (if Param: name of system call param, if Free: name of free-ing fn)
+# 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 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
+
+#-------- For SuSE 8.2 (gcc 3.3, glibc 2.3.2)
+{
+ __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
+}
+
+
+#-------- 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
+}
-#-------- Threading bugs?
+#-------- For R H 7.3 on i686
+{
+ _dl_relocate_object*/*libc-2.2.?.so/_dl_catch_error*(Cond)
+ Memcheck:Cond
+ fun:_dl_relocate_object*
+ obj:*libc-2.2.?.so
+ fun:_dl_catch_error*
+}
+{
+ _dl_relocate_object_internal
+ 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)
{
- pthread_error/__pthread_mutex_destroy/__closedir
- PThread
- fun:pthread_error
- fun:__pthread_mutex_destroy
- fun:__closedir
+ __stpcpy/*
+ Memcheck:Cond
+ fun:__stpcpy
+ fun:*
}
+{
+ strlen/decompose_rpath/_dl_map_object
+ Memcheck:Cond
+ fun:strlen
+ fun:decompose_rpath
+ fun:_dl_map_object
+}
+{
+ strlen/_dl_sym/dlsym_doit
+ Memcheck:Cond
+ fun:strlen
+ fun:_dl_sym
+ fun:dlsym_doit
+}
+{
+ trecurse/__gconv_release_shlib(Addr4)
+ Memcheck:Addr4
+ fun:trecurse
+ fun:__gconv_release_shlib
+}
+{
+ do_release_shlib/trecurse(Addr4)
+ Memcheck:Addr4
+ fun:do_release_shlib
+ fun:trecurse
+}
+
+#-------- R H Limbo (glibc-2.2.90) stuff
+{
+ elf_dynamic_do_rela.8/_dl_relocate_object_internal
+ Memcheck:Cond
+ fun:elf_dynamic_do_rela.8
+ fun:_dl_relocate_object_internal
+}
+
+{
+ __strnlen/_nl_make_l10nflist(Cond)
+ Memcheck:Cond
+ fun:__strnlen
+ fun:_nl_make_l10nflist
+}
+
+{
+ __strnlen/*vfprintf*
+ Memcheck:Cond
+ fun:__strnlen
+ fun:*vfprintf*
+}
+
+{
+ libXaw.so.7.0(Cond)
+ Memcheck:Cond
+ obj:*libXaw.so.7.0
+}
+
+#-------- Suppress errors appearing as a result of calling
+#-------- __libc_freeres()
{
- pthread_error/__pthread_mutex_destroy/_IO_default_finish
- PThread
- fun:pthread_error
- fun:__pthread_mutex_destroy
- fun:_IO_default_finish
+ __twalk/*(Addr4)
+ Memcheck:Addr4
+ fun:__twalk
}
{
- __pthread_mutex_unlock/_IO_funlockfile
- PThread
- fun:__pthread_mutex_unlock
- fun:_IO_funlockfile
+ do_release_shlib/__twalk(Addr4)
+ Memcheck:Addr4
+ fun:do_release_shlib
+ fun:__twalk
}
{
- __pthread_mutex_unlock/__register_frame_info
- PThread
- fun:__pthread_mutex_unlock
- fun:__register_frame_info
+ __libc_freeres/free_mem/free(Free)
+ Memcheck:Free
+ fun:free
+ fun:free_mem
+ fun:__libc_freeres
}
# even more glibc suppressions ?
{
libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Cond)
- Cond
+ Memcheck:Cond
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
}
{
libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Value4)
- Value4
+ Memcheck:Value4
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
##### suppressions for coolo
{
strchr/dl_open_worker(Cond)
- Cond
+ Memcheck:Cond
fun:strchr
fun:dl_open_worker
}
{
- __rawmemchr/internal_getgrgid_r(Cond)
- Cond
+ __rawmemchr(Cond)
+ Memcheck:Cond
fun:__rawmemchr
- fun:internal_getgrgid_r
}
{
_IO_vfprintf/__strnlen(Cond)
- Cond
+ Memcheck:Cond
fun:__strnlen
fun:_IO_vfprintf
}
{
__strchrnul/gethostbyname*(Cond)
- Cond
+ Memcheck:Cond
fun:__strchrnul
fun:gethostbyname*
}
##----
{
strlen/*dl_map_object*(Cond)
- Cond
+ Memcheck:Cond
fun:strlen
fun:*dl_map_object*
}
{
strlen/*dl_open_worker*(Cond)
- Cond
+ Memcheck:Cond
fun:strlen
fun:*dl_open_worker*
}
{
*rawmemchr*/*nss*(Cond)
- Cond
+ Memcheck:Cond
fun:*rawmemchr*
fun:*nss*
}
{
*strchrnul*/*nss*(Cond)
- Cond
+ Memcheck:Cond
fun:*strchrnul*
fun:*nss*
}
# two:
{
__mpn_construct_double/*(Addr4)
- Addr4
+ Memcheck:Addr4
fun:__mpn_construct_double
fun:*
}
{
__mpn_construct_double/*(Addr8)
- Addr8
+ Memcheck:Addr8
fun:__mpn_construct_double
fun:*
}
# More of the same (gcc bug, I'm pretty sure)
{
__fabs/*(Addr4)
- Addr4
+ Memcheck:Addr4
fun:__fabs
fun:*
}
{
__fabs/*(Addr8)
- Addr8
+ Memcheck:Addr8
fun:__fabs
fun:*
}
# Not sure what this is about ... but anyway
{
pthread_sighandler/*(Addr4)
- Addr4
+ Memcheck:Addr4
fun:pthread_sighandler
fun:*
}
{
__strnlen/__argz_stringify/_nl_make_l10nflist(Cond)
- Cond
+ Memcheck:Cond
fun:__strnlen
fun:__argz_stringify
fun:_nl_make_l10nflist
#--------------
{
- _dl_relocate_object/dl_open_worker/_dl_catch_error(Cond)
- Cond
- fun:_dl_relocate_object
+ _dl_relocate_object*/dl_open_worker/_dl_catch_error*(Cond)
+ Memcheck:Cond
+ fun:_dl_relocate_object*
fun:dl_open_worker
- fun:_dl_catch_error
+ fun:_dl_catch_error*
}
{
_dl_relocate_object/libc-2.2.4.so/_dl_catch_error(Cond)
- Cond
+ Memcheck:Cond
fun:_dl_relocate_object
obj:*libc-2.2.?.so
fun:_dl_catch_error
}
+{
+ _dl_relocate_object/dl_main(Cond)
+ Memcheck:Cond
+ fun:_dl_relocate_object
+ fun:dl_main
+}
+{
+ _dl_relocate_object_internal/dl_main(Cond)
+ Memcheck:Cond
+ fun:_dl_relocate_object_internal
+ fun:dl_main
+}
{
strrchr/_dl_map_object_from_fd/_dl_map_object(Cond)
- Cond
+ Memcheck:Cond
fun:strrchr
fun:_dl_map_object_from_fd
fun:_dl_map_object
}
+{
+ _dl_start/ld-2.2.4.so(Cond)
+ Memcheck:Cond
+ fun:_dl_start
+ obj:/lib/ld-2.2.4.so
+}
+
+#-------- glibc 2.2.5/ Debian 3.0
+{
+ _dl_start(Cond)
+ Memcheck:Cond
+ fun:_dl_start
+}
+
+{
+ _dl_start(Cond)
+ Memcheck:Cond
+ fun:_dl_relocate_object
+}
+
#-------------------
{
- socketcall.connect(serv_addr)/__libc_connect/*
- Param
+ socketcall.connect(serv_addr)/connect/*
+ Memcheck:Param
socketcall.connect(serv_addr)
- fun:__libc_connect
+ fun:connect
fun:*
}
{
socketcall.connect(serv_addr)/libc-2.2.4.so/libc-2.2.4.so
- Param
+ Memcheck:Param
socketcall.connect(serv_addr)
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
#----------------------
{
- write(buf)/__libc_write/libX11.so.6.2/libX11.so.6.2(Param)
- Param
+ write(buf)/write/libX11.so.6.2/libX11.so.6.2(Param)
+ Memcheck:Param
write(buf)
- fun:__libc_write
+ fun:write
obj:/usr/X11R6/lib/libX11.so.6.2
obj:/usr/X11R6/lib/libX11.so.6.2
}
{
write(buf)/libc-2.2.4.so/libX11.so.6.2/libX11.so.6.2(Param)
- Param
+ Memcheck:Param
write(buf)
obj:*libc-2.2.?.so
obj:/usr/X11R6/lib/libX11.so.6.2
}
#{
-# llseek(result)/__libc_lseek64/_IO_file_seek(Param)
+# llseek(result)/lseek64/_IO_file_seek(Param)
# Param
# llseek(result)
-# fun:__libc_lseek64
+# fun:lseek64
# fun:_IO_file_seek
#}
{
writev(vector[...])/__writev/libX11.so.6.2/libX11.so.6.2
- Param
+ Memcheck:Param
writev(vector[...])
fun:__writev
obj:/usr/X11R6/lib/libX11.so.6.2
#----------------
{
__rawmemchr/libXt.so.6.0/libXt.so.6.0
- Cond
+ Memcheck:Cond
fun:__rawmemchr
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
}
{
libc-2.2.4.so/libXt.so.6.0/libXt.so.6.0
- Cond
+ Memcheck:Cond
obj:*libc-2.2.?.so
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
}
-##----------------------------------------------------------------------##
+## 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
+ write(buf)
+ fun:pthread_create@@GLIBC_2.1
+}
+{
+ LinuxThreads: write/pthread_create
+ Memcheck:Param
+ write(buf)
+ 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
+}