blob: 8475e6b2e3d92dbd081e7b9dbd1b4e93732d099a [file] [log] [blame]
daywalker63f6f782003-05-27 00:19:52 +00001
2##----------------------------------------------------------------------##
3
4# Errors to suppress by default with glibc 2.3.x
5
6# Format of this file is:
7# {
8# name_of_suppression
nethercote137bc552003-11-14 17:47:54 +00009# tool_name:supp_kind
daywalker63f6f782003-05-27 00:19:52 +000010# (optional extra info for some suppression types)
11# caller0 name, or /name/of/so/file.so
12# caller1 name, or ditto
13# (optionally: caller2 name)
14# (optionally: caller3 name)
15# }
16#
17# For Memcheck, the supp_kinds are:
18#
njnc0616662003-06-12 09:58:41 +000019# Param Value1 Value2 Value4 Value8 Value16
20# Free Addr1 Addr2 Addr4 Addr8 Addr16
daywalker63f6f782003-05-27 00:19:52 +000021# Cond (previously known as Value0)
22#
23# and the optional extra info is:
24# if Param: name of system call param
25# if Free: name of free-ing fn)
26
daywalker63f6f782003-05-27 00:19:52 +000027{
28 __GI___stpcpy/*
29 Memcheck:Cond
30 fun:__GI___stpcpy
31 fun:*
32}
33{
34 strlen/__GI__dl_open/dlopen_doit
35 Memcheck:Cond
36 fun:strlen
37 fun:__GI__dl_open
38 fun:dlopen_doit
39}
40{
41 strlen/_dl_signal_cerror/_dl_lookup_symbol_internal/do_dlsym
42 Memcheck:Cond
43 fun:_dl_signal_cerror
44 fun:_dl_lookup_symbol_internal
45 fun:do_dlsym
46}
daywalkere1879992003-06-03 14:49:54 +000047{
48 strlen/*dl_map_object*(Cond)
49 Memcheck:Cond
50 fun:strlen
51 fun:*dl_map_object*
52}
daywalker63f6f782003-05-27 00:19:52 +000053
daywalkere1879992003-06-03 14:49:54 +000054{
55 strlen/*dl_open_worker*(Cond)
56 Memcheck:Cond
57 fun:strlen
58 fun:*dl_open_worker*
59}
60{
61 strlen/_dl_sym/dlsym_doit
62 Memcheck:Cond
63 fun:strlen
64 fun:_dl_sym
65 fun:dlsym_doit
66}
67{
68 realpath is inefficiently coded
njnd84bde72003-09-15 07:19:19 +000069 Addrcheck,Memcheck:Overlap
daywalkere1879992003-06-03 14:49:54 +000070 fun:memcpy
daywalker777aff52003-07-18 08:06:27 +000071 fun:realpath*
daywalkere1879992003-06-03 14:49:54 +000072}
73
74{
75 realpath stupidity part II
njnd84bde72003-09-15 07:19:19 +000076 Addrcheck,Memcheck:Overlap
daywalkere1879992003-06-03 14:49:54 +000077 fun:strcpy
daywalker777aff52003-07-18 08:06:27 +000078 fun:realpath*
daywalkere1879992003-06-03 14:49:54 +000079}
80{
81 strlen/decompose_rpath/_dl_map_object
82 Memcheck:Cond
83 fun:strlen
84 fun:decompose_rpath
85 fun:*dl_map_object*
86}
87{
88 stpcpy/_dl_sym*
89 Memcheck:Cond
90 fun:__stpcpy
91 fun:_dl_*
92}
daywalker63f6f782003-05-27 00:19:52 +000093
94#-------- For R H 8.0
95{
96 elf_dynamic_do_rel.7/_dl_relocate_object_internal/dl_open_worker(Cond)
97 Memcheck:Cond
98 fun:elf_dynamic_do_rel.7
99 fun:_dl_relocate_object_internal
100 fun:dl_open_worker
101}
daywalkere1879992003-06-03 14:49:54 +0000102{
103 dl_relocate/dl_open_worker
104 Memcheck:Cond
105 fun:_dl_relocate_object_internal
106 fun:dl_open_worker
107}
108
fitzhardinge1c76dc42003-12-15 09:00:21 +0000109#-------- glibc 2.3.2/ Fedora Core 1
110{
111 dl_relocate/dl_main
112 Memcheck:Cond
113 fun:_dl_relocate_object_internal
114 fun:dl_main
115}
116
rjwalsh923e7d62004-04-29 08:50:44 +0000117#-------- glibc 2.3.3/ Fedora Core 2
118{
119 dl_relocate_object/dl_main
120 Memcheck:Cond
121 fun:_dl_relocate_object
122 fun:dl_main
123}
thughese931fd42004-06-03 18:42:34 +0000124{
125 _dl_relocate_object/dl_open_worker
126 Memcheck:Cond
127 fun:_dl_relocate_object
128 fun:dl_open_worker
129}
rjwalsh923e7d62004-04-29 08:50:44 +0000130
sewardjb5f6f512005-03-10 23:59:00 +0000131#-------- glibc 2.3.4/ Fedora Core 3
132{
133 dl_relocate_object
134 Memcheck:Cond
135 fun:_dl_relocate_object
136}
137
fitzhardinge1c76dc42003-12-15 09:00:21 +0000138#-------- Data races
139{
140 _dl_lookup_symbol_internal/fixup/_dl_runtime_resolve
141 Helgrind:Eraser
142 fun:_dl_lookup_symbol_internal
143 fun:fixup
144 fun:_dl_runtime_resolve
145}
146{
rjwalsh923e7d62004-04-29 08:50:44 +0000147 _dl_lookup_symbol_x/fixup/_dl_runtime_resolve
148 Helgrind:Eraser
149 fun:_dl_lookup_symbol_x
150 fun:fixup
151 fun:_dl_runtime_resolve
152}
153{
fitzhardinge1c76dc42003-12-15 09:00:21 +0000154 _dl_lookup_versioned_symbol_internal/fixup/_dl_runtime_resolve
155 Helgrind:Eraser
156 fun:_dl_lookup_versioned_symbol_internal
157 fun:fixup
158 fun:_dl_runtime_resolve
159}
fitzhardinge47735af2004-01-21 01:27:27 +0000160{
thughes55183872004-02-29 12:42:12 +0000161 _dl_lookup_versioned_symbol/ld-2.3.2.so/ld-2.3.2.so
162 Helgrind:Eraser
163 fun:_dl_lookup_versioned_symbol
164 obj:/lib/ld-2.3.2.so
165 obj:/lib/ld-2.3.2.so
166}
167{
thughes489281a2004-10-31 10:18:23 +0000168 _dl_lookup_symbol/ld-2.3.2.so/ld-2.3.2.so
169 Helgrind:Eraser
170 fun:_dl_lookup_symbol
171 obj:/lib/ld-2.3.2.so
172 obj:/lib/ld-2.3.2.so
173}
174{
fitzhardinge47735af2004-01-21 01:27:27 +0000175 _dl_fini
176 Helgrind:Eraser
177 fun:_dl_fini
178}
thughes489281a2004-10-31 10:18:23 +0000179{
180 ld-2.3.2.so/exit/__libc_start_main
181 Helgrind:Eraser
182 obj:/lib/ld-2.3.2.so
183 fun:exit
184 fun:__libc_start_main
185}
daywalker63f6f782003-05-27 00:19:52 +0000186
187#-------- Threading bugs?
188# glibc 'knows' that destroying a locked mutex will unlock it
189{
fitzhardinge1c76dc42003-12-15 09:00:21 +0000190 pthread_error/pthread_mutex_destroy/__closedir
daywalker63f6f782003-05-27 00:19:52 +0000191 core:PThread
192 fun:pthread_error
fitzhardinge1c76dc42003-12-15 09:00:21 +0000193 fun:pthread_mutex_destroy
daywalker63f6f782003-05-27 00:19:52 +0000194 fun:__closedir
195}
196
197{
fitzhardinge1c76dc42003-12-15 09:00:21 +0000198 pthread_error/pthread_mutex_destroy/_IO_default_finish
daywalker63f6f782003-05-27 00:19:52 +0000199 core:PThread
200 fun:pthread_error
fitzhardinge1c76dc42003-12-15 09:00:21 +0000201 fun:pthread_mutex_destroy
daywalker63f6f782003-05-27 00:19:52 +0000202 fun:_IO_default_finish*
203}
204
205{
fitzhardinge1c76dc42003-12-15 09:00:21 +0000206 pthread_mutex_unlock/_IO_funlockfile
daywalker63f6f782003-05-27 00:19:52 +0000207 core:PThread
fitzhardinge1c76dc42003-12-15 09:00:21 +0000208 fun:pthread_mutex_unlock
daywalker63f6f782003-05-27 00:19:52 +0000209 fun:_IO_funlockfile
210}
211
212##----------------------------------------------------------------------##
sewardj7c874c72003-09-27 21:25:30 +0000213## Bugs in helper library supplied with Intel Icc 7.0 (65)
214## in /opt/intel/compiler70/ia32/lib/libcxa.so.3
215{
216 Intel compiler70/ia32/lib/libcxa.so.3 below-esp accesses
217 Addrcheck,Memcheck:Addr4
218 obj:/opt/intel/compiler70/ia32/lib/libcxa.so.3
219}
jsewardf93e8472003-12-24 11:45:16 +0000220
221##----------------------------------------------------------------------##
222## SuSE 9 after FV changes (post 2.1.0)
223
224{
225 strlen/_dl_init_paths/dl_main/_dl_sysdep_start(Cond)
226 Memcheck:Cond
227 fun:strlen
228 fun:_dl_init_paths
229 fun:dl_main
230 fun:_dl_sysdep_start
231}
232
233{
234 Ugly strchr error in /lib/ld-2.3.2.so
235 Memcheck:Cond
236 obj:/lib/ld-2.3.2.so
237}
fitzhardinge47735af2004-01-21 01:27:27 +0000238
239##----------------------------------------------------------------------##
jseward38276e82004-07-20 22:42:44 +0000240## SuSE 9.1 with post 2.1.2
fitzhardinge47735af2004-01-21 01:27:27 +0000241{
jseward38276e82004-07-20 22:42:44 +0000242 Ugly strchr error in /lib/ld-2.3.3.so
fitzhardinge47735af2004-01-21 01:27:27 +0000243 Memcheck:Cond
jseward38276e82004-07-20 22:42:44 +0000244 obj:/lib/ld-2.3.3.so
fitzhardinge47735af2004-01-21 01:27:27 +0000245}
sewardj0d683fe2005-03-14 19:25:49 +0000246
247##----------------------------------------------------------------------##
248## SuSE 9.1 with 3.0 branch (x86)
249{
250 Strstr dubiousness in pthread_initialize
251 Memcheck:Cond
252 fun:strstr
253 fun:pthread_initialize
254 obj:/lib/libpthread.so.0
255 obj:/lib/libpthread.so.0
256}
257
sewardjb5f6f512005-03-10 23:59:00 +0000258##----------------------------------------------------------------------##
259## glibc-2.3.3 on FC2
260## Assumes that sysctl returns \0-terminated strings in is_smp_system
sewardjf8033c72005-05-16 16:39:28 +0000261#{
262# Unterminated strstr string in is_smp_system() (NPTL)
263# Memcheck:Cond
264# fun:strstr
265# fun:__pthread_initialize_minimal
266# obj:/lib/tls/libpthread*.so*
267# obj:/lib/tls/libpthread*.so*
268#}
269#{
270# Unterminated strstr string in is_smp_system() (LinuxThreads)
271# Memcheck:Cond
272# fun:strstr
273# fun:pthread_initialize
274# obj:/lib/i686/libpthread*.so*
275# obj:/lib/i686/libpthread*.so*
276#}
277#{
278# Unterminated strstr string in is_smp_system() (LinuxThreads)
279# Memcheck:Cond
280# fun:strstr
281# fun:pthread_initialize
282# obj:/lib/libpthread-0.10.so
283# obj:/lib/libpthread-0.10.so
284#}
sewardjb5f6f512005-03-10 23:59:00 +0000285
286## Bug in PRE(sys_clone), really. Some args are not used.
287{
288 LinuxThread clone use (parent_tidptr)
289 Memcheck:Param
290 clone(parent_tidptr)
291 fun:clone
292 fun:pthread_create
293}
294{
295 LinuxThread clone use (child_tidptr)
296 Memcheck:Param
297 clone(child_tidptr)
298 fun:clone
299 fun:pthread_create
300}
301{
302 LinuxThread clone use (tlsinfo)
303 Memcheck:Param
304 clone(tlsinfo)
305 fun:clone
306 fun:pthread_create
307}
308{
309 LinuxThread clone use (parent_tidptr)
310 Memcheck:Param
311 clone(parent_tidptr)
312 fun:clone
313 fun:pthread_create@@GLIBC_2.1
314}
315{
316 LinuxThread clone use (child_tidptr)
317 Memcheck:Param
318 clone(child_tidptr)
319 fun:clone
320 fun:pthread_create@@GLIBC_2.1
321}
322{
323 LinuxThread clone use (tlsinfo)
324 Memcheck:Param
325 clone(tlsinfo)
326 fun:clone
327 fun:pthread_create@@GLIBC_2.1
328}
329
330## LinuxThreads manager writes messages containing undefined bytes
331{
332 LinuxThreads: write/pthread_onexit_process
333 Memcheck:Param
334 write(buf)
335 fun:pthread_onexit_process
336 fun:exit
337}
338{
339 LinuxThreads: write/pthread_join
340 Memcheck:Param
341 write(buf)
342 fun:pthread_join
343}
344{
345 LinuxThreads: write/pthread_create
346 Memcheck:Param
347 write(buf)
348 fun:pthread_create@@GLIBC_2.1
349}
350{
351 LinuxThreads: write/__pthread_initialize_manager/pthread_create
352 Memcheck:Param
353 write(buf)
354 fun:__pthread_initialize_manager
355 fun:pthread_create@@GLIBC_2.1
356}
357
358{
359 LinuxThreads: write/pthread_create
360 Memcheck:Param
361 write(buf)
362 fun:write
363 fun:pthread_create
364}
365
366##----------------------------------------------------------------------##
367## glibc-2.3.4 on FC3
368## Assumes that sysctl returns \0-terminated strings in is_smp_system
sewardjf8033c72005-05-16 16:39:28 +0000369#{
370# Unterminated strstr string in is_smp_system() (NPTL)
371# Memcheck:Cond
372# fun:strstr
373# fun:__pthread_initialize_minimal
374# obj:/lib/tls/libpthread-2.3.4.so
375# obj:/lib/tls/libpthread-2.3.4.so
376#}
377#{
378# Unterminated strstr string in is_smp_system() (NPTL)
379# Memcheck:Cond
380# fun:strstr
381# fun:__pthread_initialize_minimal
382# obj:/lib64/tls/libpthread*.so*
383#}
sewardj24b46342005-05-12 18:00:12 +0000384
sewardj917701d2005-05-15 17:18:40 +0000385##----------------------------------------------------------------------##
386## glibc-2.3.5 on FC4
387## Assumes that sysctl returns \0-terminated strings in is_smp_system
sewardjf8033c72005-05-16 16:39:28 +0000388#{
389# Unterminated strstr string in is_smp_system() (NPTL)
390# Memcheck:Cond
391# fun:strstr
392# fun:__pthread_initialize_minimal
393# obj:*/libpthread-2.3.5.so
394# obj:*/libpthread-2.3.5.so
395#}
sewardj24b46342005-05-12 18:00:12 +0000396
397
398##----------------------------------------------------------------------##
399# Hacks pertaining to the fact that our intercept mechanism can't
400# always get hold of strlen early enough, due to idiocy in the low
401# level memory manager.
402
403## HACK to do with strlen not being intercepted early enough
404{
405 strlen-not-intercepted-early-enough-HACK-1
406 Memcheck:Addr4
407 fun:strlen
408 fun:_dl_map_object_from_fd
409 fun:_dl_map_object
410}
411
412{
413 strlen-not-intercepted-early-enough-HACK-2
414 Memcheck:Addr4
415 fun:strlen
416 fun:decompose_rpath
417 fun:cache_rpath
418 fun:_dl_map_object
419}
420
421{
422 strlen-not-intercepted-early-enough-HACK-3
423 Memcheck:Cond
424 fun:strlen
425 fun:_dl_new_object
426 fun:_dl_map_object_from_fd
427 fun:_dl_map_object
428}
429
430{
431 strlen-not-intercepted-early-enough-HACK-4
432 Memcheck:Cond
433 fun:strlen
434 fun:expand_dynamic_string_token
435 fun:_dl_map_object
436}
437
438{
439 strlen-not-intercepted-early-enough-HACK-5
440 Memcheck:Cond
441 fun:strlen
442 fun:fillin_rpath
443 fun:_dl_init_paths
444}
445
446
447## HACK to do with index not being intercepted early enough
448{
449 index-not-intercepted-early-enough-HACK-1
450 Memcheck:Cond
451 fun:index
452 fun:expand_dynamic_string_token
453 fun:_dl_map_object
454}
455{
456 index-not-intercepted-early-enough-HACK-2
457 Memcheck:Cond
458 fun:index
459 fun:_dl_map_object
460 fun:map_doit
461 fun:_dl_catch_error
462}
463{
464 index-not-intercepted-early-enough-HACK-3
465 Memcheck:Cond
466 fun:index
467 fun:_dl_map_object
468 fun:dl_main
469 fun:_dl_sysdep_start
470}