1
2##----------------------------------------------------------------------##
3
4# Errors to suppress by default with XFree86 4.1.0)
5
6# *** And a bunch of other stuff which is completely unrelated
7# to X.  The default suppressions are a bit of a mess and could do
8# with a good tidying up.
9
10# Format of this file is:
11# {
12#     name_of_suppression
13#     tool_name:supp_kind
14#     (optional extra info for some suppression types)
15#     caller0 name, or /name/of/so/file.so
16#     caller1 name, or ditto
17#     (optionally: caller2 name)
18#     (optionally: caller3 name)
19#  }
20#
21# For Memcheck, the supp_kinds are:
22#
23#     Param Value1 Value2 Value4 Value8 Value16 Jump
24#     Free Addr1 Addr2 Addr4 Addr8 Addr16
25#     Cond (previously known as Value0)
26#
27# and the optional extra info is:
28#     if Param: name of system call param
29
30# Resulting from R H 8.0
31{
32   *libc_write/libX11.so.6.2/*X11TransWrite(Param)
33   Memcheck:Param
34   write(buf)
35   fun:*libc_write
36   obj:/usr/*lib*/libX11.so*
37   fun:*X11TransWrite
38}
39
40{
41   libX11.so.6.2/libX11.so.6.2/libX11.so.6.2(Cond)
42   Memcheck:Cond
43   obj:/usr/*lib*/libX11.so*
44   obj:/usr/*lib*/libX11.so*
45   obj:/usr/*lib*/libX11.so*
46}
47
48{
49   libXt.so.6.2/libXt.so.6.2/libXt.so.6.2(Cond)
50   Memcheck:Cond
51   obj:/usr/*lib*/libXt.so*
52   obj:/usr/*lib*/libXt.so*
53   obj:/usr/*lib*/libXt.so*
54}
55
56
57{
58   libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond)
59   Memcheck:Cond
60   obj:/usr/*lib*/libXaw.so*
61   obj:/usr/*lib*/libXaw.so*
62   obj:/usr/*lib*/libXaw.so*
63}
64
65{
66   libXmu.so.6.2/libXmu.so.6.2/libXmu.so.6.2(Cond)
67   Memcheck:Cond
68   obj:/usr/*lib*/libXmu.so*
69   obj:/usr/*lib*/libXmu.so*
70   obj:/usr/*lib*/libXmu.so*
71}
72
73{
74   libXt.so.6.0/libXt.so.6.0/libXaw.so.7.0(Cond)
75   Memcheck:Cond
76   obj:/usr/*lib*/libXt.so*
77   obj:/usr/*lib*/libXt.so*
78   obj:/usr/*lib*/libXaw.so*
79}
80
81{
82   libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Value4)
83   Memcheck:Value4
84   obj:/usr/*lib*/libXaw.so*
85   obj:/usr/*lib*/libXaw.so*
86   obj:/usr/*lib*/libXt.so*
87}
88
89{
90   libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Cond)
91   Memcheck:Cond
92   obj:/usr/*lib*/libXaw.so*
93   obj:/usr/*lib*/libXaw.so*
94   obj:/usr/*lib*/libXt.so*
95}
96
97{
98   libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Cond)
99   Memcheck:Cond
100   obj:/usr/*lib*/libX11.so*
101   obj:/usr/*lib*/libX11.so*
102   obj:/usr/*lib*/libXaw.so*
103}
104
105{
106   libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Addr4)
107   Memcheck:Addr4
108   obj:/usr/*lib*/libX11.so*
109   obj:/usr/*lib*/libX11.so*
110   obj:/usr/*lib*/libXaw.so*
111}
112
113{
114   libX11.so.6.2/libXaw.so.7.0/libXaw.so.7.0(Cond)
115   Memcheck:Cond
116   obj:/usr/*lib*/libX11.so*
117   obj:/usr/*lib*/libXaw.so*
118   obj:/usr/*lib*/libXaw.so*
119}
120
121{
122   libXpm.so.4.11/libXpm.so.4.11/libXpm.so.4.11
123   Memcheck:Cond
124   obj:/usr/*lib*/libXpm.so.4.11
125   obj:/usr/*lib*/libXpm.so.4.11
126   obj:/usr/*lib*/libXpm.so.4.11
127}
128
129{
130   struct with uninitialized paddings
131   Memcheck:Param
132   writev(vector[...])
133   fun:*_writev
134   fun:_X11TransSocketWritev
135   fun:_X11TransWritev
136   fun:*
137}
138
139{
140   struct with uninitialized paddings - libxcb
141   Memcheck:Param
142   writev(vector[...])
143   obj:/lib*/*.so
144   obj:/usr/lib*/libxcb.so.1.0.0
145   obj:/usr/lib*/libxcb.so.1.0.0
146   fun:xcb_send_request
147   fun:_X*
148}
149
150{
151   struct with uninitialized paddings - libxcb
152   Memcheck:Param
153   writev(vector[...])
154   obj:/lib*/*.so
155   obj:/usr/lib*/libxcb.so.1.0.0
156   obj:/usr/lib*/libxcb.so.1.0.0
157   obj:/usr/lib*/libxcb.so.1.0.0
158   fun:xcb_*
159   fun:_X*
160}
161
162{
163   another struct with uninitialized paddings
164   Memcheck:Param
165   write(buf)
166   obj:*
167   fun:_IceTransSocketWrite
168   fun:_IceTransWrite
169   fun:_IceWrite
170}
171
172{
173   Xorg 6.8.1 uninit _write* padding
174   Memcheck:Param
175   write(buf)
176   fun:*
177   fun:_X11TransWrite
178   obj:/usr/*lib*/libX11.so*
179}
180
181{
182   Xorg 6.8.1 uninit write padding
183   Memcheck:Param
184   write(buf)
185   fun:write
186   fun:_X11TransWrite
187   obj:/usr/*lib*/libX11.so*
188}
189
190{
191   Xorg 6.8.1 ICE uninit __write* padding
192   Memcheck:Param
193   write(buf)
194   obj:*
195   fun:_IceTransWrite
196   fun:_IceWrite
197   fun:IceFlush
198}
199
200{
201   Xorg 6.8.1 writev uninit padding
202   Memcheck:Param
203   writev(vector[...])
204   fun:writev
205   obj:/usr/*lib*/libX11.so*
206   fun:_X11TransWritev
207   fun:_XSend
208}
209
210{
211   Xorg 6.9.0 writev uninit padding
212   Memcheck:Param
213   writev(vector[...])
214   fun:do_writev
215   fun:writev
216   obj:/usr/*lib*/libX11.so*
217   fun:_X11TransWritev
218   fun:_XSend
219}
220
221{
222   X on SUSE11 writev uninit padding
223   Memcheck:Param
224   writev(vector[...])
225   fun:writev
226   obj:/usr/lib*/libxcb.so*
227   obj:/usr/lib*/libxcb.so*
228}
229{
230   X on SUSE11 writev uninit padding 2
231   Memcheck:Param
232   writev(vector[...])
233   obj:/lib*/ld-2.*.so*
234   obj:/usr/lib*/libxcb.so*
235   obj:/usr/lib*/libxcb.so*
236}
237{
238   X on SUSE11 writev uninit padding 3
239   Memcheck:Param
240   writev(vector[...])
241   obj:/lib*/ld-2.*.so*
242   obj:/usr/lib*/libORBit*.so*
243   obj:/usr/lib*/libORBit*.so*
244}
245{
246   X on SUSE11 writev uninit padding 4
247   Memcheck:Param
248   writev(vector[...])
249   obj:/lib*/libc-2.*.so*
250   obj:/usr/lib*/libORBit*.so*
251   obj:/usr/lib*/libORBit*.so*
252}
253 
254
255# There's something strange about a % 127 in XftFontOpenInfo
256# (hashing) which gcc turns into a multiply by 33818641 and
257# some other guff instead.  I don't understand it enough to
258# know if libXft is broken or if memcheck's value tracking is
259# inadequate here.  Anyway, for the moment, suppress it.
260#
261# Use of uninitialised value of size 8
262#   at 0x71A59F8: XftFontOpenInfo (in /usr/X11R6/lib64/libXft.so.2.1.2)
263#   by 0x71A5F0D: XftFontOpenPattern (in /usr/X11R6/lib64/libXft.so.2.1.2)
264#   by 0x65F166E: loadFontConfigFont(QFontPrivate const*, QFontDef const&, 
265#                 QFont::Script) (qfontdatabase_x11.cpp:1942)
266#   by 0x65F5DE4: QFontDatabase::findFont(QFont::Script, QFontPrivate const*,
267#                 QFontDef const&, int) (qfontdatabase.cpp:996)
268{
269   XftFontOpenInfo-umod-127-strangeness
270   Memcheck:Value8
271   obj:/usr/X11*/lib*/libXft.so*
272   obj:/usr/X11*/lib*/libXft.so*
273}
274{
275   XftFontOpenInfo-umod-127-strangeness-a-la-xorg
276   Memcheck:Value8
277   obj:/usr/lib*/libXft.so*
278   obj:/usr/lib*/libXft.so*
279}
280
281{
282   More X padding stuff
283   Memcheck:Param
284   writev(vector[...])
285   fun:*writev*
286   obj:/usr/X11*/lib*/libX11.so*
287   obj:/usr/X11*/lib*/libX11.so*
288}
289
290# Inlined strlen in libX11 on Ubuntu 9.10 amd64, unfortunately.
291# Invalid read of size 4
292#    at 0x9B5CCE6: ??? (in /usr/lib/libX11.so.6.2.0)
293#    by 0x9B5D011: XGetAtomName (in /usr/lib/libX11.so.6.2.0)
294#    by 0x86407C3: gdk_x11_xatom_to_atom_for_display
295#                  (in /usr/lib/libgdk-x11-2.0.so.0.1800.3)
296#    by 0x8636817: ??? (in /usr/lib/libgdk-x11-2.0.so.0.1800.3)
297#  Address 0x1a558e1c is 28 bytes inside a block of size 30 alloc'd
298#    at 0x4C2552D: malloc (vg_replace_malloc.c:236)
299#    by 0x9B642C0: _XUpdateAtomCache (in /usr/lib/libX11.so.6.2.0)
300#    by 0x9B647F1: ??? (in /usr/lib/libX11.so.6.2.0)
301#    by 0x9B81818: ??? (in /usr/lib/libX11.so.6.2.0)
302{
303   libX11.so.6.2.0/libX11.so.6.2.0(Addr4)
304   Memcheck:Addr4
305   obj:/usr/*lib*/libX11.so*
306   obj:/usr/*lib*/libX11.so*
307}
308
309##----------------------------------------------------------------------##
310# Completely inappropriate place, but ...
311
312{
313   ifort-9.X-on-i686-1
314   Memcheck:Addr4
315   fun:unaligned_bigint
316   fun:hash
317   fun:for__add_to_lf_table
318}
319{
320   ifort-9.X-on-amd64-1
321   Memcheck:Addr8
322   fun:unaligned_bigint
323   fun:hash
324   fun:for__add_to_lf_table
325}
326
327
328# zlib-1.2.x uses uninitialised memory in some tricky way which
329# apparently is harmless (it must amount to a vectorised while-loop,
330# nothing else makes sense).  Fools Memcheck though.  See the mentioned
331# URL for details.
332{
333   zlib-1.2.x trickyness (1a): See http://www.zlib.net/zlib_faq.html#faq36
334   Memcheck:Cond
335   obj:/*lib*/libz.so.1.2.*
336   ...
337   obj:/*lib*/libz.so.1.2.*
338   fun:deflate
339}
340{
341   zlib-1.2.x trickyness (1b): See http://www.zlib.net/zlib_faq.html#faq36
342   Memcheck:Cond
343   obj:/*lib*/libz.so.1.2.*
344   fun:deflate
345}
346
347{
348   zlib-1.2.x trickyness (2a): See http://www.zlib.net/zlib_faq.html#faq36
349   Memcheck:Value8
350   obj:/*lib*/libz.so.1.2.*
351   ...
352   obj:/*lib*/libz.so.1.2.*
353   fun:deflate
354}
355{
356   zlib-1.2.x trickyness (2b): See http://www.zlib.net/zlib_faq.html#faq36
357   Memcheck:Value8
358   obj:/*lib*/libz.so.1.2.*
359   fun:deflate
360}
361
362{
363   zlib-1.2.x trickyness (3a): See http://www.zlib.net/zlib_faq.html#faq36
364   Memcheck:Value4
365   obj:/*lib*/libz.so.1.2.*
366   ...
367   obj:/*lib*/libz.so.1.2.*
368   fun:deflate
369}
370{
371   zlib-1.2.x trickyness (3b): See http://www.zlib.net/zlib_faq.html#faq36
372   Memcheck:Value4
373   obj:/*lib*/libz.so.1.2.*
374   fun:deflate
375}
376
377
378##----------------------------------------------------------------------##
379
380## More general versions of some of the old X suppressions above
381{
382   Ubuntu804 libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond)
383   Memcheck:Cond
384   obj:/usr/*lib*/libXaw*so*
385   obj:/usr/*lib*/libXaw*so*
386   obj:/usr/*lib*/libXaw*so*
387}
388{
389   Ubuntu804 libXaw.so.7.0/libXaw.so.7.0/libXt(Cond)
390   Memcheck:Cond
391   obj:/usr/*lib*/libXaw*so*
392   obj:/usr/*lib*/libXaw*so*
393   obj:/usr/*lib*/libXt*so*
394}
395
396{
397   Ubuntu804-hack-1
398   Memcheck:Overlap
399   fun:mempcpy
400   fun:_IO_default_xsputn
401   obj:/lib*/libc-2.*so*
402}
403