# Errors to suppress by default with XFree86 4.1.0)
+# *** And a bunch of other stuff which is completely unrelated
+# to X. The default suppressions are a bit of a mess and could do
+# with a good tidying up.
+
# 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
+# Resulting from R H 8.0
+{
+ *libc_write/libX11.so.6.2/*X11TransWrite(Param)
+ Memcheck:Param
+ write(buf)
+ fun:*libc_write
+ obj:/usr/*lib*/libX11.so*
+ fun:*X11TransWrite
+}
{
libX11.so.6.2/libX11.so.6.2/libX11.so.6.2(Cond)
- Cond
- obj:/usr/X11R6/lib/libX11.so.6.2
- obj:/usr/X11R6/lib/libX11.so.6.2
- obj:/usr/X11R6/lib/libX11.so.6.2
+ Memcheck:Cond
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libX11.so*
}
{
libXt.so.6.2/libXt.so.6.2/libXt.so.6.2(Cond)
- Cond
- obj:/usr/X11R6/lib/libXt.so.6.0
- obj:/usr/X11R6/lib/libXt.so.6.0
- obj:/usr/X11R6/lib/libXt.so.6.0
+ Memcheck:Cond
+ obj:/usr/*lib*/libXt.so*
+ obj:/usr/*lib*/libXt.so*
+ obj:/usr/*lib*/libXt.so*
}
{
libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond)
- Cond
- obj:/usr/X11R6/lib/libXaw.so.7.0
- obj:/usr/X11R6/lib/libXaw.so.7.0
- obj:/usr/X11R6/lib/libXaw.so.7.0
+ Memcheck:Cond
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXaw.so*
}
{
libXmu.so.6.2/libXmu.so.6.2/libXmu.so.6.2(Cond)
- Cond
- obj:/usr/X11R6/lib/libXmu.so.6.2
- obj:/usr/X11R6/lib/libXmu.so.6.2
- obj:/usr/X11R6/lib/libXmu.so.6.2
+ Memcheck:Cond
+ obj:/usr/*lib*/libXmu.so*
+ obj:/usr/*lib*/libXmu.so*
+ obj:/usr/*lib*/libXmu.so*
}
{
libXt.so.6.0/libXt.so.6.0/libXaw.so.7.0(Cond)
- Cond
- obj:/usr/X11R6/lib/libXt.so.6.0
- obj:/usr/X11R6/lib/libXt.so.6.0
- obj:/usr/X11R6/lib/libXaw.so.7.0
+ Memcheck:Cond
+ obj:/usr/*lib*/libXt.so*
+ obj:/usr/*lib*/libXt.so*
+ obj:/usr/*lib*/libXaw.so*
}
{
libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Value4)
- Value4
- obj:/usr/X11R6/lib/libXaw.so.7.0
- obj:/usr/X11R6/lib/libXaw.so.7.0
- obj:/usr/X11R6/lib/libXt.so.6.0
+ Memcheck:Value4
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXt.so*
+}
+
+{
+ libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXt.so*
}
{
libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Cond)
- Cond
- obj:/usr/X11R6/lib/libX11.so.6.2
- obj:/usr/X11R6/lib/libX11.so.6.2
- obj:/usr/X11R6/lib/libXaw.so.7.0
+ Memcheck:Cond
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libXaw.so*
+}
+
+{
+ libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Addr4)
+ Memcheck:Addr4
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libXaw.so*
+}
+
+{
+ libX11.so.6.2/libXaw.so.7.0/libXaw.so.7.0(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXaw.so*
+}
+
+{
+ libXpm.so.4.11/libXpm.so.4.11/libXpm.so.4.11
+ Memcheck:Cond
+ obj:/usr/*lib*/libXpm.so.4.11
+ obj:/usr/*lib*/libXpm.so.4.11
+ obj:/usr/*lib*/libXpm.so.4.11
+}
+
+{
+ struct with uninitialized paddings
+ Memcheck:Param
+ writev(vector[...])
+ fun:*_writev
+ fun:_X11TransSocketWritev
+ fun:_X11TransWritev
+ fun:*
+}
+
+{
+ struct with uninitialized paddings - libxcb
+ Memcheck:Param
+ writev(vector[...])
+ obj:/lib*/*.so
+ obj:/usr/lib*/libxcb.so.1.0.0
+ obj:/usr/lib*/libxcb.so.1.0.0
+ fun:xcb_send_request
+ fun:_X*
+}
+
+{
+ struct with uninitialized paddings - libxcb
+ Memcheck:Param
+ writev(vector[...])
+ obj:/lib*/*.so
+ obj:/usr/lib*/libxcb.so.1.0.0
+ obj:/usr/lib*/libxcb.so.1.0.0
+ obj:/usr/lib*/libxcb.so.1.0.0
+ fun:xcb_*
+ fun:_X*
}
+{
+ another struct with uninitialized paddings
+ Memcheck:Param
+ write(buf)
+ obj:*
+ fun:_IceTransSocketWrite
+ fun:_IceTransWrite
+ fun:_IceWrite
+}
+
+{
+ Xorg 6.8.1 uninit _write* padding
+ Memcheck:Param
+ write(buf)
+ fun:*
+ fun:_X11TransWrite
+ obj:/usr/*lib*/libX11.so*
+}
+
+{
+ Xorg 6.8.1 uninit write padding
+ Memcheck:Param
+ write(buf)
+ fun:write
+ fun:_X11TransWrite
+ obj:/usr/*lib*/libX11.so*
+}
+
+{
+ Xorg 6.8.1 ICE uninit __write* padding
+ Memcheck:Param
+ write(buf)
+ obj:*
+ fun:_IceTransWrite
+ fun:_IceWrite
+ fun:IceFlush
+}
+
+{
+ Xorg 6.8.1 writev uninit padding
+ Memcheck:Param
+ writev(vector[...])
+ fun:writev
+ obj:/usr/*lib*/libX11.so*
+ fun:_X11TransWritev
+ fun:_XSend
+}
+
+{
+ Xorg 6.9.0 writev uninit padding
+ Memcheck:Param
+ writev(vector[...])
+ fun:do_writev
+ fun:writev
+ obj:/usr/*lib*/libX11.so*
+ fun:_X11TransWritev
+ fun:_XSend
+}
+
+{
+ X on SUSE11 writev uninit padding
+ Memcheck:Param
+ writev(vector[...])
+ fun:writev
+ obj:/usr/lib*/libxcb.so*
+ obj:/usr/lib*/libxcb.so*
+}
+{
+ X on SUSE11 writev uninit padding 2
+ Memcheck:Param
+ writev(vector[...])
+ obj:/lib*/ld-2.*.so*
+ obj:/usr/lib*/libxcb.so*
+ obj:/usr/lib*/libxcb.so*
+}
+{
+ X on SUSE11 writev uninit padding 3
+ Memcheck:Param
+ writev(vector[...])
+ obj:/lib*/ld-2.*.so*
+ obj:/usr/lib*/libORBit*.so*
+ obj:/usr/lib*/libORBit*.so*
+}
+{
+ X on SUSE11 writev uninit padding 4
+ Memcheck:Param
+ writev(vector[...])
+ obj:/lib*/libc-2.*.so*
+ obj:/usr/lib*/libORBit*.so*
+ obj:/usr/lib*/libORBit*.so*
+}
+
+
+# There's something strange about a % 127 in XftFontOpenInfo
+# (hashing) which gcc turns into a multiply by 33818641 and
+# some other guff instead. I don't understand it enough to
+# know if libXft is broken or if memcheck's value tracking is
+# inadequate here. Anyway, for the moment, suppress it.
+#
+# Use of uninitialised value of size 8
+# at 0x71A59F8: XftFontOpenInfo (in /usr/X11R6/lib64/libXft.so.2.1.2)
+# by 0x71A5F0D: XftFontOpenPattern (in /usr/X11R6/lib64/libXft.so.2.1.2)
+# by 0x65F166E: loadFontConfigFont(QFontPrivate const*, QFontDef const&,
+# QFont::Script) (qfontdatabase_x11.cpp:1942)
+# by 0x65F5DE4: QFontDatabase::findFont(QFont::Script, QFontPrivate const*,
+# QFontDef const&, int) (qfontdatabase.cpp:996)
+{
+ XftFontOpenInfo-umod-127-strangeness
+ Memcheck:Value8
+ obj:/usr/X11*/lib*/libXft.so*
+ obj:/usr/X11*/lib*/libXft.so*
+}
+{
+ XftFontOpenInfo-umod-127-strangeness-a-la-xorg
+ Memcheck:Value8
+ obj:/usr/lib*/libXft.so*
+ obj:/usr/lib*/libXft.so*
+}
+
+{
+ More X padding stuff
+ Memcheck:Param
+ writev(vector[...])
+ fun:*writev*
+ obj:/usr/X11*/lib*/libX11.so*
+ obj:/usr/X11*/lib*/libX11.so*
+}
+
+# Inlined strlen in libX11 on Ubuntu 9.10 amd64, unfortunately.
+# Invalid read of size 4
+# at 0x9B5CCE6: ??? (in /usr/lib/libX11.so.6.2.0)
+# by 0x9B5D011: XGetAtomName (in /usr/lib/libX11.so.6.2.0)
+# by 0x86407C3: gdk_x11_xatom_to_atom_for_display
+# (in /usr/lib/libgdk-x11-2.0.so.0.1800.3)
+# by 0x8636817: ??? (in /usr/lib/libgdk-x11-2.0.so.0.1800.3)
+# Address 0x1a558e1c is 28 bytes inside a block of size 30 alloc'd
+# at 0x4C2552D: malloc (vg_replace_malloc.c:236)
+# by 0x9B642C0: _XUpdateAtomCache (in /usr/lib/libX11.so.6.2.0)
+# by 0x9B647F1: ??? (in /usr/lib/libX11.so.6.2.0)
+# by 0x9B81818: ??? (in /usr/lib/libX11.so.6.2.0)
+{
+ libX11.so.6.2.0/libX11.so.6.2.0(Addr4)
+ Memcheck:Addr4
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libX11.so*
+}
+
+##----------------------------------------------------------------------##
+# Completely inappropriate place, but ...
+
+{
+ ifort-9.X-on-i686-1
+ Memcheck:Addr4
+ fun:unaligned_bigint
+ fun:hash
+ fun:for__add_to_lf_table
+}
+{
+ ifort-9.X-on-amd64-1
+ Memcheck:Addr8
+ fun:unaligned_bigint
+ fun:hash
+ fun:for__add_to_lf_table
+}
+
+
+# zlib-1.2.x uses uninitialised memory in some tricky way which
+# apparently is harmless (it must amount to a vectorised while-loop,
+# nothing else makes sense). Fools Memcheck though. See the mentioned
+# URL for details.
+{
+ zlib-1.2.x trickyness (1a): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Cond
+ obj:/*lib*/libz.so.1.2.*
+ ...
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+{
+ zlib-1.2.x trickyness (1b): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Cond
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+
+{
+ zlib-1.2.x trickyness (2a): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Value8
+ obj:/*lib*/libz.so.1.2.*
+ ...
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+{
+ zlib-1.2.x trickyness (2b): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Value8
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+
+{
+ zlib-1.2.x trickyness (3a): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Value4
+ obj:/*lib*/libz.so.1.2.*
+ ...
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+{
+ zlib-1.2.x trickyness (3b): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Value4
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+
+
##----------------------------------------------------------------------##
+## More general versions of some of the old X suppressions above
+{
+ Ubuntu804 libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXaw*so*
+ obj:/usr/*lib*/libXaw*so*
+ obj:/usr/*lib*/libXaw*so*
+}
+{
+ Ubuntu804 libXaw.so.7.0/libXaw.so.7.0/libXt(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXaw*so*
+ obj:/usr/*lib*/libXaw*so*
+ obj:/usr/*lib*/libXt*so*
+}
+
+{
+ Ubuntu804-hack-1
+ Memcheck:Overlap
+ fun:mempcpy
+ fun:_IO_default_xsputn
+ obj:/lib*/libc-2.*so*
+}