1
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
9#     tool_name:supp_kind
10#     (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#
19#     Param Value1 Value2 Value4 Value8 Value16 Jump
20#     Free Addr1 Addr2 Addr4 Addr8 Addr16
21#     Cond (previously known as Value0)
22#
23# and the optional extra info is:
24#     if Param: name of system call param
25
26{
27   __GI___stpcpy/*
28   Memcheck:Cond
29   fun:__GI___stpcpy
30   fun:*
31}
32{
33   strlen/__GI__dl_open/dlopen_doit
34   Memcheck:Cond
35   fun:strlen
36   fun:__GI__dl_open
37   fun:dlopen_doit
38}
39{
40   strlen/_dl_signal_cerror/_dl_lookup_symbol_internal/do_dlsym
41   Memcheck:Cond
42   fun:_dl_signal_cerror
43   fun:_dl_lookup_symbol_internal
44   fun:do_dlsym
45}
46{
47   strlen/*dl_map_object*(Cond)
48   Memcheck:Cond
49   fun:strlen
50   fun:*dl_map_object*
51}
52
53{
54   strlen/*dl_open_worker*(Cond)
55   Memcheck:Cond
56   fun:strlen
57   fun:*dl_open_worker*
58}
59{
60   strlen/_dl_sym/dlsym_doit
61   Memcheck:Cond
62   fun:strlen
63   fun:_dl_sym
64   fun:dlsym_doit
65}
66{
67   realpath is inefficiently coded
68   Memcheck:Overlap
69   fun:memcpy
70   fun:realpath*
71}
72
73{
74   realpath stupidity part II
75   Memcheck:Overlap
76   fun:strcpy
77   fun:realpath*
78}
79{
80   strlen/decompose_rpath/_dl_map_object
81   Memcheck:Cond
82   fun:strlen
83   fun:decompose_rpath
84   fun:*dl_map_object*
85}
86{
87   stpcpy/_dl_sym*
88   Memcheck:Cond
89   fun:__stpcpy
90   fun:_dl_*
91}
92
93#-------- For R H 8.0
94{
95   elf_dynamic_do_rel.7/_dl_relocate_object_internal/dl_open_worker(Cond)
96   Memcheck:Cond
97   fun:elf_dynamic_do_rel.7
98   fun:_dl_relocate_object_internal
99   fun:dl_open_worker
100}
101{
102   dl_relocate/dl_open_worker
103   Memcheck:Cond
104   fun:_dl_relocate_object_internal
105   fun:dl_open_worker
106}
107{
108   RedHat8-1
109   Memcheck:Cond
110   fun:elf_dynamic_do_rela.8
111   fun:_dl_relocate_object
112   fun:dl_main
113   fun:_dl_sysdep_start
114}
115{
116   RedHat8-2
117   Memcheck:Cond
118   fun:elf_dynamic_do_rel.7
119   fun:_dl_relocate_object
120   fun:dl_main
121   fun:_dl_sysdep_start
122}
123{
124   RedHat8-3
125   Memcheck:Cond
126   fun:elf_dynamic_do_rela.8
127   fun:_dl_relocate_object
128   fun:dl_open_worker
129}
130
131#-------- glibc 2.3.2/ Fedora Core 1
132{
133   dl_relocate/dl_main
134   Memcheck:Cond
135   fun:_dl_relocate_object_internal
136   fun:dl_main
137}
138
139#-------- glibc 2.3.3/ Fedora Core 2
140{
141   dl_relocate_object/dl_main
142   Memcheck:Cond
143   fun:_dl_relocate_object
144   fun:dl_main
145}
146{
147   _dl_relocate_object/dl_open_worker
148   Memcheck:Cond
149   fun:_dl_relocate_object
150   fun:dl_open_worker
151}
152
153#-------- glibc 2.3.4/ Fedora Core 3
154{
155   dl_relocate_object
156   Memcheck:Cond
157   fun:_dl_relocate_object
158}
159
160##----------------------------------------------------------------------##
161## Bugs in helper library supplied with Intel Icc 7.0 (65)
162## in /opt/intel/compiler70/ia32/lib/libcxa.so.3
163{
164   Intel compiler70/ia32/lib/libcxa.so.3 below-esp accesses
165   Memcheck:Addr4
166   obj:/opt/intel/compiler70/ia32/lib/libcxa.so.3
167}
168
169##----------------------------------------------------------------------##
170## SuSE 9 after FV changes (post 2.1.0)
171
172{
173   strlen/_dl_init_paths/dl_main/_dl_sysdep_start(Cond)
174   Memcheck:Cond
175   fun:strlen
176   fun:_dl_init_paths
177   fun:dl_main
178   fun:_dl_sysdep_start
179}
180
181{
182   Ugly strchr error in /lib/ld-2.3.2.so
183   Memcheck:Cond
184   obj:/lib/ld-2.3.2.so
185}
186
187##----------------------------------------------------------------------##
188## SuSE 9.1 with post 2.1.2
189{
190   Ugly strchr error in /lib/ld-2.3.3.so
191   Memcheck:Cond
192   obj:/lib/ld-2.3.3.so
193}
194
195##----------------------------------------------------------------------##
196## SuSE 9.1 with 3.0 branch (x86)
197{
198   Strstr dubiousness in pthread_initialize
199   Memcheck:Cond
200   fun:strstr
201   fun:pthread_initialize
202   obj:/lib/libpthread.so.0
203   obj:/lib/libpthread.so.0
204}
205
206##----------------------------------------------------------------------##
207## glibc-2.3.3 on FC2
208## Assumes that sysctl returns \0-terminated strings in is_smp_system
209#{
210#   Unterminated strstr string in is_smp_system() (NPTL)
211#   Memcheck:Cond
212#   fun:strstr
213#   fun:__pthread_initialize_minimal
214#   obj:/lib/tls/libpthread*.so*
215#   obj:/lib/tls/libpthread*.so*
216#}
217#{
218#   Unterminated strstr string in is_smp_system() (LinuxThreads)
219#   Memcheck:Cond
220#   fun:strstr
221#   fun:pthread_initialize
222#   obj:/lib/i686/libpthread*.so*
223#   obj:/lib/i686/libpthread*.so*
224#}
225#{
226#   Unterminated strstr string in is_smp_system() (LinuxThreads)
227#   Memcheck:Cond
228#   fun:strstr
229#   fun:pthread_initialize
230#   obj:/lib/libpthread-0.10.so
231#   obj:/lib/libpthread-0.10.so
232#}
233
234## Bug in PRE(sys_clone), really.  Some args are not used.
235{
236   LinuxThread clone use (parent_tidptr)
237   Memcheck:Param
238   clone(parent_tidptr)
239   fun:clone
240   fun:pthread_create
241}
242{
243   LinuxThread clone use (child_tidptr)
244   Memcheck:Param
245   clone(child_tidptr)
246   fun:clone
247   fun:pthread_create
248}
249{
250   LinuxThread clone use (tlsinfo)
251   Memcheck:Param
252   clone(tlsinfo)
253   fun:clone
254   fun:pthread_create
255}
256{
257   LinuxThread clone use (parent_tidptr)
258   Memcheck:Param
259   clone(parent_tidptr)
260   fun:clone
261   fun:pthread_create@@GLIBC_2.1
262}
263{
264   LinuxThread clone use (child_tidptr)
265   Memcheck:Param
266   clone(child_tidptr)
267   fun:clone
268   fun:pthread_create@@GLIBC_2.1
269}
270{
271   LinuxThread clone use (tlsinfo)
272   Memcheck:Param
273   clone(tlsinfo)
274   fun:clone
275   fun:pthread_create@@GLIBC_2.1
276}
277
278## LinuxThreads manager writes messages containing undefined bytes
279{
280   LinuxThreads: write/pthread_onexit_process
281   Memcheck:Param
282   write(buf)
283   fun:pthread_onexit_process
284   fun:exit
285}
286{
287   LinuxThreads: write/pthread_join
288   Memcheck:Param
289   write(buf)
290   fun:pthread_join
291}
292{
293   LinuxThreads: write/pthread_create
294   Memcheck:Param
295   write(buf)
296   fun:pthread_create@@GLIBC_2.1
297}
298{
299   LinuxThreads: write/pthread_create 2
300   Memcheck:Param
301   write(buf)
302   fun:write
303   fun:pthread_create@@GLIBC_2.1
304   fun:main
305}
306{
307   LinuxThreads: write/__pthread_initialize_manager/pthread_create
308   Memcheck:Param
309   write(buf)
310   fun:__pthread_initialize_manager
311   fun:pthread_create@@GLIBC_2.1
312}
313
314{
315   LinuxThreads: write/pthread_create
316   Memcheck:Param
317   write(buf)
318   fun:write
319   fun:pthread_create
320}
321
322## LinuxThreads leaks the stack and TLS data for the manager thread
323{
324   LinuxThreads: leaks stack of manager thread
325   Memcheck:Leak
326   fun:malloc
327   fun:__pthread_initialize_manager
328   fun:pthread_create@@GLIBC_2.1
329}
330{
331   LinuxThreads: leaks TLS data for manager thread
332   Memcheck:Leak
333   fun:calloc
334   fun:_dl_allocate_tls
335   fun:__pthread_initialize_minimal
336}
337{
338   LinuxThreads: leaks TLS data for manager thread
339   Memcheck:Leak
340   fun:memalign
341   fun:_dl_allocate_tls
342   fun:__pthread_initialize_minimal
343}
344
345##----------------------------------------------------------------------##
346## glibc-2.3.4 on FC3
347## Assumes that sysctl returns \0-terminated strings in is_smp_system
348#{
349#   Unterminated strstr string in is_smp_system() (NPTL)
350#   Memcheck:Cond
351#   fun:strstr
352#   fun:__pthread_initialize_minimal
353#   obj:/lib/tls/libpthread-2.3.4.so
354#   obj:/lib/tls/libpthread-2.3.4.so
355#}
356#{
357#   Unterminated strstr string in is_smp_system() (NPTL)
358#   Memcheck:Cond
359#   fun:strstr
360#   fun:__pthread_initialize_minimal
361#   obj:/lib64/tls/libpthread*.so*
362#}
363
364##----------------------------------------------------------------------##
365## glibc-2.3.5 on FC4
366## Assumes that sysctl returns \0-terminated strings in is_smp_system
367#{
368#   Unterminated strstr string in is_smp_system() (NPTL)
369#   Memcheck:Cond
370#   fun:strstr
371#   fun:__pthread_initialize_minimal
372#   obj:*/libpthread-2.3.5.so
373#   obj:*/libpthread-2.3.5.so
374#}
375
376
377##----------------------------------------------------------------------##
378# 
379# I don't know why this is needed, but still:
380{
381   glibc-2.3.x-on-SuSE-10.0-(PPC)-1
382   Memcheck:Cond
383   fun:_dl_start
384   fun:_start
385}
386{
387   glibc-2.3.x-on-SuSE-10.1-(PPC)-1
388   Memcheck:Cond
389   fun:_dl_start_final
390   fun:_dl_start
391   fun:_start
392}
393{
394   glibc-2.3.x-on-SuSE-10.0/10.1-(PPC)-2a
395   Memcheck:Cond
396   fun:index
397   obj:*ld-2.3.*.so
398}
399{
400   glibc-2.3.x-on-SuSE-10.0/10.1-(PPC)-2b
401   Memcheck:Addr4
402   fun:index
403   fun:expand_dynamic_string_token
404}
405{
406   glibc-2.3.5-on-SuSE-10.0/10.1-(PPC)-2c
407   Memcheck:Addr4
408   fun:index
409   obj:*ld-2.3.*.so
410}
411{
412   glibc-2.3.5-on-SuSE-10.0/10.1-(PPC)-3
413   Memcheck:Addr4
414   fun:*wordcopy_fwd_dest_aligned*
415   fun:mem*cpy
416   obj:*lib*2.3.*.so
417}
418{
419   glibc-2.3.5-on-SuSE-10.0/10.1-(PPC)-4
420   Memcheck:Addr4
421   fun:bcmp
422   fun:*rpath*
423   fun:*rpath*
424   fun:*rpath*
425}
426
427##----------------------------------------------------------------------##
428# Hacks pertaining to the fact that our intercept mechanism can't
429# always get hold of strlen early enough, due to idiocy in the low
430# level memory manager.
431
432## HACK to do with strlen not being intercepted early enough
433{
434   strlen-not-intercepted-early-enough-HACK-1
435   Memcheck:Addr4
436   fun:strlen
437   fun:_dl_map_object_from_fd
438   fun:_dl_map_object
439}
440
441{
442   strlen-not-intercepted-early-enough-HACK-2
443   Memcheck:Addr4
444   fun:strlen
445   fun:decompose_rpath
446   fun:cache_rpath
447   fun:_dl_map_object
448}
449
450{
451   strlen-not-intercepted-early-enough-HACK-3
452   Memcheck:Cond
453   fun:strlen
454   fun:_dl_new_object
455   fun:_dl_map_object_from_fd
456   fun:_dl_map_object
457}
458
459{
460   strlen-not-intercepted-early-enough-HACK-4
461   Memcheck:Cond
462   fun:strlen
463   fun:expand_dynamic_string_token
464   fun:_dl_map_object
465}
466
467{
468   strlen-not-intercepted-early-enough-HACK-5
469   Memcheck:Cond
470   fun:strlen
471   fun:fillin_rpath
472   fun:_dl_init_paths
473}
474
475
476## HACK to do with index not being intercepted early enough
477{
478   index-not-intercepted-early-enough-HACK-1
479   Memcheck:Cond
480   fun:index
481   obj:*
482   fun:_dl_map_object
483}
484{
485   index-not-intercepted-early-enough-HACK-2
486   Memcheck:Cond
487   fun:index
488   fun:_dl_map_object
489   obj:*
490   fun:_dl_catch_error
491}
492{
493   index-not-intercepted-early-enough-HACK-3
494   Memcheck:Cond
495   fun:index
496   fun:_dl_map_object
497   obj:*
498   fun:_dl_sysdep_start
499}
500
501{
502   index-not-intercepted-early-enough-HACK-4
503   Memcheck:Cond
504   fun:index
505   fun:expand_dynamic_string_token
506}
507
508
509##----------------------------------------------------------------------##
510## MontaVista 3.1 on ppc32 integer only
511{
512   MontaVista-3.1-ppc32-#1
513   Memcheck:Value4
514   obj:/lib/ld-2.3.2.so
515   obj:/lib/ld-2.3.2.so
516   fun:*dl_map_object*
517   obj:/lib/libc-2.3.2.so
518}
519
520{
521   MontaVista-3.1-ppc32-#2
522   Memcheck:Value4
523   fun:malloc
524   obj:/lib/ld-2.3.2.so
525   obj:/lib/ld-2.3.2.so
526   obj:/lib/libc-2.3.2.so
527}
528
529{
530   MontaVista-3.1-ppc32-#3
531   Memcheck:Value4
532   obj:/lib/ld-2.3.2.so
533   obj:/lib/ld-2.3.2.so
534}
535
536##----------------------------------------------------------------------##
537## Ubuntu something (based on Debian 3.0?) on x86
538
539{
540   Ubuntu-stripped-ld.so
541   Memcheck:Cond
542   obj:/lib/ld-2.3.*.so
543   obj:/lib/ld-2.3.*.so
544   obj:/lib/ld-2.3.*.so
545   obj:/lib/ld-2.3.*.so
546   obj:/lib/ld-2.3.*.so
547}
548
549##----------------------------------------------------------------------##
550# MontaVista Linux 4.0.1 on ppc32
551{
552    MVL-401-linuxthreads-pthread_create
553    Memcheck:Param
554    write(buf)
555    fun:pthread_create
556}
557{
558   MVL-401-linuxthreads-pthread_create
559   Memcheck:Param
560   write(buf)
561   obj:/lib/libpthread-0.10.so
562   fun:pthread_create
563}
564