1
2##----------------------------------------------------------------------##
3
4# Errors to suppress by default with glibc 2.2.4 / 2.2.5
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#-------- For SuSE 8.2 (gcc 3.3, glibc 2.3.2)
27{
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}
47
48
49#-------- For R H 8.0
50{
51   elf_dynamic_do_rel.7/_dl_relocate_object_internal/dl_open_worker(Cond)
52   Memcheck:Cond
53   fun:elf_dynamic_do_rel.7
54   fun:_dl_relocate_object_internal
55   fun:dl_open_worker
56}
57
58
59#-------- For R H 7.3 on i686
60{
61   _dl_relocate_object*/*libc-2.2.?.so/_dl_catch_error*(Cond)
62   Memcheck:Cond
63   fun:_dl_relocate_object*
64   obj:*libc-2.2.?.so
65   fun:_dl_catch_error*
66}
67{
68   _dl_relocate_object_internal
69   Memcheck:Cond
70   fun:_dl_relocate_object_internal
71}
72{
73   index/*-2.2.5.so/*-2.2.5.so
74   Memcheck:Cond
75   fun:index
76   obj:*-2.2.5.so
77   obj:*-2.2.5.so
78}
79{
80   Red Hat 7.3 #4
81   Memcheck:Cond
82   fun:strlen
83   fun:dl_main
84   fun:_dl_sysdep_start
85}
86
87#-------- SuSE 8.1 stuff (gcc-3.2, glibc-2.2.5 + SuSE's hacks)
88{
89   __stpcpy/*
90   Memcheck:Cond
91   fun:__stpcpy
92   fun:*
93}
94{
95   strlen/decompose_rpath/_dl_map_object
96   Memcheck:Cond
97   fun:strlen
98   fun:decompose_rpath
99   fun:_dl_map_object
100}
101{
102   strlen/_dl_sym/dlsym_doit
103   Memcheck:Cond
104   fun:strlen
105   fun:_dl_sym
106   fun:dlsym_doit
107}
108{
109   trecurse/__gconv_release_shlib(Addr4)
110   Memcheck:Addr4
111   fun:trecurse
112   fun:__gconv_release_shlib
113}
114{
115   do_release_shlib/trecurse(Addr4)
116   Memcheck:Addr4
117   fun:do_release_shlib
118   fun:trecurse
119}
120
121#-------- R H Limbo (glibc-2.2.90) stuff
122{
123   elf_dynamic_do_rela.8/_dl_relocate_object_internal
124   Memcheck:Cond
125   fun:elf_dynamic_do_rela.8
126   fun:_dl_relocate_object_internal
127}
128
129{
130   __strnlen/_nl_make_l10nflist(Cond)
131   Memcheck:Cond
132   fun:__strnlen
133   fun:_nl_make_l10nflist
134}
135
136{
137   __strnlen/*vfprintf*
138   Memcheck:Cond
139   fun:__strnlen
140   fun:*vfprintf*
141}
142
143{
144   libXaw.so.7.0(Cond)
145   Memcheck:Cond
146   obj:*libXaw.so.7.0
147}
148
149#-------- Suppress errors appearing as a result of calling
150#-------- __libc_freeres()
151
152{
153   __twalk/*(Addr4)
154   Memcheck:Addr4
155   fun:__twalk
156}
157
158{
159   do_release_shlib/__twalk(Addr4)
160   Memcheck:Addr4
161   fun:do_release_shlib
162   fun:__twalk
163}
164
165{
166   __libc_freeres/free_mem/free(Free)
167   Memcheck:Free
168   fun:free
169   fun:free_mem
170   fun:__libc_freeres
171}
172
173# even more glibc suppressions ?
174{
175   libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Cond)
176   Memcheck:Cond
177   obj:*libc-2.2.?.so
178   obj:*libc-2.2.?.so
179   obj:*libc-2.2.?.so
180}
181{
182   libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Value4)
183   Memcheck:Value4
184   obj:*libc-2.2.?.so
185   obj:*libc-2.2.?.so
186   obj:*libc-2.2.?.so
187}
188
189##### glibc 2.2.5 stuff perhaps?
190##### suppressions for coolo
191{
192   strchr/dl_open_worker(Cond)
193   Memcheck:Cond
194   fun:strchr
195   fun:dl_open_worker
196}
197{
198   __rawmemchr(Cond)
199   Memcheck:Cond
200   fun:__rawmemchr
201}
202{
203   _IO_vfprintf/__strnlen(Cond)
204   Memcheck:Cond
205   fun:__strnlen
206   fun:_IO_vfprintf
207}
208{
209   __strchrnul/gethostbyname*(Cond)
210   Memcheck:Cond
211   fun:__strchrnul
212   fun:gethostbyname*
213}
214
215
216##----
217{
218   strlen/*dl_map_object*(Cond)
219   Memcheck:Cond
220   fun:strlen
221   fun:*dl_map_object*
222}
223
224{
225   strlen/*dl_open_worker*(Cond)
226   Memcheck:Cond
227   fun:strlen
228   fun:*dl_open_worker*
229}
230
231{
232   *rawmemchr*/*nss*(Cond)
233   Memcheck:Cond
234   fun:*rawmemchr*
235   fun:*nss*
236}
237
238{
239   *strchrnul*/*nss*(Cond)
240   Memcheck:Cond
241   fun:*strchrnul*
242   fun:*nss*
243}
244
245# gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)
246# on Red Hat 7.2 (x86) miscompiles __mpn_construct_double in
247# __mpn_construct_double (../sysdeps/ieee754/dbl-64/mpn2dbl.c:45)
248# (glibc-2.2.4) to read and write below %esp.  Hence the following
249# two:
250{
251   __mpn_construct_double/*(Addr4)
252   Memcheck:Addr4
253   fun:__mpn_construct_double
254   fun:*
255}
256{
257   __mpn_construct_double/*(Addr8)
258   Memcheck:Addr8
259   fun:__mpn_construct_double
260   fun:*
261}
262
263# More of the same (gcc bug, I'm pretty sure)
264{
265   __fabs/*(Addr4)
266   Memcheck:Addr4
267   fun:__fabs
268   fun:*
269}
270{
271   __fabs/*(Addr8)
272   Memcheck:Addr8
273   fun:__fabs
274   fun:*
275}
276
277
278# Not sure what this is about ... but anyway
279{
280   pthread_sighandler/*(Addr4)
281   Memcheck:Addr4
282   fun:pthread_sighandler
283   fun:*
284}
285
286
287# More glibc stuff, AFAICS
288
289{
290   __strnlen/__argz_stringify/_nl_make_l10nflist(Cond)
291   Memcheck:Cond
292   fun:__strnlen
293   fun:__argz_stringify
294   fun:_nl_make_l10nflist
295}
296
297#--------------
298{
299   _dl_relocate_object*/dl_open_worker/_dl_catch_error*(Cond)
300   Memcheck:Cond
301   fun:_dl_relocate_object*
302   fun:dl_open_worker
303   fun:_dl_catch_error*
304}
305{
306   _dl_relocate_object/libc-2.2.4.so/_dl_catch_error(Cond)
307   Memcheck:Cond
308   fun:_dl_relocate_object
309   obj:*libc-2.2.?.so
310   fun:_dl_catch_error
311}
312{
313   _dl_relocate_object/dl_main(Cond)
314   Memcheck:Cond
315   fun:_dl_relocate_object
316   fun:dl_main
317}
318{
319   _dl_relocate_object_internal/dl_main(Cond)
320   Memcheck:Cond
321   fun:_dl_relocate_object_internal
322   fun:dl_main
323}
324
325{
326   strrchr/_dl_map_object_from_fd/_dl_map_object(Cond)
327   Memcheck:Cond
328   fun:strrchr
329   fun:_dl_map_object_from_fd
330   fun:_dl_map_object
331}
332
333{
334   _dl_start/ld-2.2.4.so(Cond)
335   Memcheck:Cond
336   fun:_dl_start
337   obj:/lib/ld-2.2.4.so
338}
339
340#-------- glibc 2.2.5/ Debian 3.0
341{
342   _dl_start(Cond)
343   Memcheck:Cond
344   fun:_dl_start
345}
346
347{
348   _dl_start(Cond)
349   Memcheck:Cond
350   fun:_dl_relocate_object
351}
352
353#-------------------
354{
355   socketcall.connect(serv_addr)/connect/*
356   Memcheck:Param
357   socketcall.connect(serv_addr)
358   fun:connect
359   fun:*
360}
361{
362   socketcall.connect(serv_addr)/libc-2.2.4.so/libc-2.2.4.so
363   Memcheck:Param
364   socketcall.connect(serv_addr)
365   obj:*libc-2.2.?.so
366   obj:*libc-2.2.?.so
367}
368
369#----------------------
370{
371   write(buf)/write/libX11.so.6.2/libX11.so.6.2(Param)
372   Memcheck:Param
373   write(buf)
374   fun:write
375   obj:/usr/X11R6/lib/libX11.so.6.2
376   obj:/usr/X11R6/lib/libX11.so.6.2
377}
378{
379   write(buf)/libc-2.2.4.so/libX11.so.6.2/libX11.so.6.2(Param)
380   Memcheck:Param
381   write(buf)
382   obj:*libc-2.2.?.so
383   obj:/usr/X11R6/lib/libX11.so.6.2
384   obj:/usr/X11R6/lib/libX11.so.6.2
385}
386
387#{
388#   llseek(result)/lseek64/_IO_file_seek(Param)
389#   Param
390#   llseek(result)
391#   fun:lseek64
392#   fun:_IO_file_seek
393#}
394
395{
396   writev(vector[...])/__writev/libX11.so.6.2/libX11.so.6.2
397   Memcheck:Param
398   writev(vector[...])
399   fun:__writev
400   obj:/usr/X11R6/lib/libX11.so.6.2
401   obj:/usr/X11R6/lib/libX11.so.6.2
402}
403
404#----------------
405{
406   __rawmemchr/libXt.so.6.0/libXt.so.6.0
407   Memcheck:Cond
408   fun:__rawmemchr
409   obj:/usr/X11R6/lib/libXt.so.6.0
410   obj:/usr/X11R6/lib/libXt.so.6.0
411}
412{
413   libc-2.2.4.so/libXt.so.6.0/libXt.so.6.0
414   Memcheck:Cond
415   obj:*libc-2.2.?.so
416   obj:/usr/X11R6/lib/libXt.so.6.0
417   obj:/usr/X11R6/lib/libXt.so.6.0
418}
419
420## Bug in PRE(sys_clone), really.  Some args are not used.
421{
422   LinuxThread clone use (child_tidptr)
423   Memcheck:Param
424   clone(child_tidptr)
425   fun:clone
426   fun:__pthread_initialize_manager
427   fun:pthread_create@@GLIBC_2.2.5
428}
429
430## LinuxThreads manager writes messages containing undefined bytes
431{
432   LinuxThreads: write/pthread_create
433   Memcheck:Param
434   write(buf)
435   fun:pthread_create@@GLIBC_2.1
436}
437{
438   LinuxThreads: write/pthread_create
439   Memcheck:Param
440   write(buf)
441   fun:write
442   fun:pthread_create@@GLIBC_2.1
443}
444{
445   LinuxThreads: write/pthread_onexit_process
446   Memcheck:Param
447   write(buf)
448   fun:write
449   fun:pthread_onexit_process
450   fun:exit
451}
452{
453   LinuxThreads: write/pthread_join
454   Memcheck:Param
455   write(buf)
456   fun:write
457   fun:pthread_join
458}
459{
460   LinuxThreads: write/pthread_create
461   Memcheck:Param
462   write(buf)
463   fun:write
464   fun:pthread_create@@GLIBC_2.2.5
465}
466{
467   LinuxThreads: write/__pthread_initialize_manager/pthread_create
468   Memcheck:Param
469   write(buf)
470   fun:write
471   fun:__pthread_initialize_manager
472   fun:pthread_create@@GLIBC_2.2.5
473}
474
475## LinuxThreads leaks the stack and TLS data for the manager thread
476{
477   LinuxThreads: leaks stack of manager thread
478   Memcheck:Leak
479   fun:malloc
480   fun:__pthread_initialize_manager
481   fun:pthread_create@@GLIBC_2.1
482}
483{
484   LinuxThreads: leaks TLS data for manager thread
485   Memcheck:Leak
486   fun:calloc
487   fun:_dl_allocate_tls
488   fun:__pthread_initialize_minimal
489}
490{
491   LinuxThreads: leaks TLS data for manager thread
492   Memcheck:Leak
493   fun:memalign
494   fun:_dl_allocate_tls
495   fun:__pthread_initialize_minimal
496}
497{
498   LinuxThreads: leaks stack of manager thread
499   Memcheck:Leak
500   fun:malloc
501   fun:__pthread_initialize_manager
502   fun:pthread_create@@GLIBC_2.2.5
503}
504{
505   LinuxThreads: leaks TLS data for manager thread
506   Memcheck:Leak
507   fun:calloc
508   fun:allocate_dtv
509   fun:_dl_allocate_tls_storage
510   fun:_dl_allocate_tls
511   fun:__pthread_initialize_minimal
512}
513{
514   LinuxThreads: leaks TLS data for manager thread
515   Memcheck:Leak
516   fun:memalign
517   fun:_dl_allocate_tls_storage
518   fun:_dl_allocate_tls
519   fun:__pthread_initialize_minimal
520}
521