1# Full list is tracked through meta bug 793882
2
3####################################
4#  Leaks in third party libraries  #
5####################################
6
7{
8   Bug 793537
9   Memcheck:Leak
10   ...
11   obj:/usr/lib64/libpango-1.0.so.0.2800.1
12   ...
13}
14{
15   Bug 793598
16   Memcheck:Leak
17   ...
18   obj:/lib64/libdbus-1.so.3.4.0
19   ...
20}
21# Fontconfig is going fancy with its cache structure and that confuses valgrind.
22# https://bugs.freedesktop.org/show_bug.cgi?id=8215
23# https://bugs.freedesktop.org/show_bug.cgi?id=8428
24{
25   Bug 1187649
26   Memcheck:Leak
27   match-leak-kinds: definite
28   fun:realloc
29   fun:FcPatternObjectInsertElt
30   ...
31}
32{
33   Bug 1187649
34   Memcheck:Leak
35   match-leak-kinds: definite
36   fun:malloc
37   fun:FcPatternObjectInsertElt
38   ...
39}
40# With older versions of fontconfig (e.g. 2.8.0 on taskcluster systems),
41# there's an uninitialized memory usage and leak when loading app fonts.
42{
43   Bug 1231701
44   Memcheck:Param
45   write(buf)
46   ...
47   fun:FcDirCacheWrite
48   fun:FcDirCacheScan
49   fun:FcConfigAddDirList
50   fun:FcConfigAppFontAddDir
51   ...
52}
53{
54   Bug 1231701
55   Memcheck:Leak
56   match-leak-kinds: definite
57   fun:malloc
58   fun:FcDirScanConfig
59   fun:FcDirCacheScan
60   fun:FcConfigAddDirList
61   fun:FcConfigAppFontAddDir
62   ...
63}
64{
65   Bug 1231701
66   Memcheck:Leak
67   match-leak-kinds: definite
68   fun:malloc
69   fun:FcDirScanConfig
70   fun:FcDirScanConfig
71   fun:FcDirCacheScan
72   fun:FcConfigAddDirList
73   fun:FcConfigAppFontAddDir
74   ...
75}
76# Leaks due to either Gtk+3 or cairo, but Gecko is not directly involved with
77# those cairo interactions.  One suspected cause is Gecko not closing the
78# display to work around a bug in old Gtk+3 versions.  See also bug 1228724.
79{
80   Bug 1187649
81   Memcheck:Leak
82   match-leak-kinds: definite
83   fun:malloc
84   fun:_cairo_freelist_alloc
85   fun:_cairo_xlib_display_queue_resource
86   fun:_cairo_xlib_surface_finish
87   ...
88}
89# The following leak is deep in Gtk+3, and it doesn't seem we're doing
90# anything wrong on our end with the container objects. This suppression
91# is purposefully verbose so as to avoid catching actual leaks due to
92# Gecko code.
93# Note: valgrind doesn't support more than 24 elements in a suppression stack.
94{
95   Bug 1187649
96   Memcheck:Leak
97   match-leak-kinds: definite
98   fun:malloc
99   fun:g_malloc
100   fun:g_slice_alloc
101   fun:g_list_prepend
102   fun:gtk_combo_box_get_path_for_child
103   fun:gtk_container_get_path_for_child
104   fun:gtk_widget_get_path
105   fun:_gtk_widget_update_path
106   fun:reset_style_recurse
107   fun:gtk_widget_reset_style
108   fun:gtk_widget_set_parent
109   fun:gtk_combo_box_add
110   fun:g_cclosure_marshal_VOID__OBJECTv
111   fun:_g_closure_invoke_va
112   fun:g_signal_emit_valist
113   fun:g_signal_emit
114   fun:gtk_combo_box_constructor
115   fun:g_object_newv
116   fun:g_object_new_valist
117   fun:g_object_new
118   ...
119}
120# set_color() in gtkstyle.c of GTK version 3.4.4 only can leak GdkRGBA
121# allocations when the theme has transparent colors:
122# https://git.gnome.org/browse/gtk+/tree/gtk/deprecated/gtkstyle.c?h=3.4.4#n676
123{
124   Bug 1250704
125   Memcheck:Leak
126   match-leak-kinds: definite
127   fun:malloc
128   fun:g_malloc
129   fun:g_slice_alloc
130   fun:g_slice_copy
131   fun:boxed_proxy_lcopy_value
132   fun:gtk_style_context_get_valist
133   fun:gtk_style_context_get
134   fun:set_color
135   fun:gtk_style_update_from_context
136   fun:gtk_style_constructed
137   fun:g_object_newv
138   fun:g_object_new_valist
139   fun:g_object_new
140   ...
141}
142{
143   Bug 794366
144   Memcheck:Leak
145   ...
146   obj:/usr/lib64/libgtk-x11-2.0.so.0.1800.9
147   ...
148}
149{
150   Bug 794368
151   Memcheck:Leak
152   ...
153   obj:/usr/lib64/libXrandr.so.2.2.0
154   ...
155}
156{
157   Bug 794373
158   Memcheck:Leak
159   ...
160   obj:/lib64/libgobject-2.0.so.0.2200.5
161   ...
162}
163{
164   Bug 966673
165   Memcheck:Leak
166   fun:malloc
167   obj:/lib64/libresolv-2.12.so
168   ...
169   fun:gaih_inet
170   fun:getaddrinfo
171   fun:PR_GetAddrInfoByName
172   ...
173}
174{
175   Bug 979242
176   Memcheck:Leak
177   fun:calloc
178   fun:xcb_connect_to_fd
179   fun:xcb_connect_to_display_with_auth_info
180   fun:_XConnectXCB
181   fun:XOpenDisplay
182   fun:gdk_display_open
183   ...
184}
185{
186  _g_io_module_get_default
187   Memcheck:Leak
188   ...
189   fun:g_io_module_new
190   fun:g_io_modules_scan_all_in_directory_with_scope
191   fun:_g_io_modules_ensure_loaded
192   fun:_g_io_module_get_default
193}
194
195###################################
196#  Leaks in short lived precesses #
197###################################
198
199{
200   Bug 984196
201   Memcheck:Leak
202   ...
203   fun:glxtest
204   ...
205}
206
207#########################################
208#  Uninitialised value false positives  #
209#########################################
210
211# This concerns a false positive pertaining to Memcheck's overly-
212# conservative instrumentation of CPUID.  See bug 1288618 comments
213# 119 through 127.
214{
215   Bug 1288618 comments 119 through 127
216   Memcheck:Cond
217   fun:_ZN6SkOptsL4initEv
218   fun:sk_once_no_arg_adaptor
219}
220
221{
222   Bug 1288618 comments 119 through 127 part 2
223   Memcheck:Cond
224   fun:__get_cpuid
225   fun:cpuid
226   fun:_ZN6SkOptsL4initEv
227   fun:sk_once_no_arg_adaptor
228}
229
230# More stuff to do with CPUID and Skia.  Apparently we could get rid of
231# these if we could patch our in-tree Skia, but that's not favoured.
232#
233# Conditional jump or move depends on uninitialised value(s)
234#    at 0xFDD1D97: SkCpu::CacheRuntimeFeatures()
235#    by 0xFE8A66E: SkGraphics::Init()
236#    by 0xE757308: gfxPlatform::Init()
237#    by 0xE75772C: gfxPlatform::GetPlatform()
238{
239   Skia and CPUID, Jan 2017, #1
240   Memcheck:Cond
241   fun:_ZN5SkCpu20CacheRuntimeFeaturesEv
242   fun:_ZN10SkGraphics4InitEv
243   fun:_ZN11gfxPlatform4InitEv
244   fun:_ZN11gfxPlatform11GetPlatformEv
245}
246
247# Conditional jump or move depends on uninitialised value(s)
248#    at 0xFD5B218: SkOpts::Init()
249#    by 0xE757308: gfxPlatform::Init()
250#    by 0xE75772C: gfxPlatform::GetPlatform()
251#    by 0xF1A3691: mozilla::dom::ContentProcess::Init()
252#               or mozilla::dom::ContentChild::RecvSetXPCOMProcessAttributes()
253{
254   Skia and CPUID, Jan 2017, #2
255   Memcheck:Cond
256   fun:_ZN6SkOpts4InitEv
257   fun:_ZN11gfxPlatform4InitEv
258   fun:_ZN11gfxPlatform11GetPlatformEv
259   fun:_ZN7mozilla3dom*Content*
260}
261
262# False positives triggered by rust 1.20.0 (at least) builds of stylo.
263# See bug 1394696. The diagnosis is an llvm optimization transforming
264# `if A && B` to `if B && A` if is can be proven that A is false
265# whenever B is uninitialized. Confusing, but valid.
266#
267# Conditional jump or move depends on uninitialised value(s)
268#    at 0x113ED01E: selectors::matching::matches_complex_selector_internal (option.rs:421)
269#    by 0x113ECF19: selectors::matching::matches_complex_selector (matching.rs:501)
270#    by 0x113EBAC0: <style::selector_map::SelectorMap<style::stylist::Rule>>::get_matching_rules (matching.rs:397)
271{
272  Bug 1394696 Stylo selector, Sept 2017, part 1
273  Memcheck:Cond
274  fun:_ZN9selectors8matching33matches_complex_selector_internal*
275  fun:_ZN9selectors8matching24matches_complex_selector*
276  ...
277  fun:_ZN69_$LT$style..selector_map..SelectorMap$LT$style..stylist..Rule$GT$$GT$18get_matching_rules*
278}
279
280# Conditional jump or move depends on uninitialised value(s)
281#    at 0x113EFFDE: selectors::matching::matches_complex_selector_internal (option.rs:421)
282#    by 0x113EFED9: selectors::matching::matches_complex_selector (matching.rs:501)
283#    by 0x113DFE55: style::stylist::Stylist::match_revalidation_selectors::{{closure}} (matching.rs:397)
284{
285  Bug 1394696 Stylo selector, Sept 2017, part 2
286  Memcheck:Cond
287  fun:_ZN9selectors8matching33matches_complex_selector_internal*
288  fun:_ZN9selectors8matching24matches_complex_selector*
289  ...
290  fun:_ZN5style9traversal13compute_style*
291  fun:recalc_style_at<style::gecko::wrapper::GeckoElement,style::gecko::traversal::RecalcStyleOnly,closure>
292}
293
294# Similar issue triggered by rust 1.23.0 on builds of stylo.
295#
296# at 0x11819B3E: std::sync::once::Once::call_once::{{closure}} (raw_vec.rs:225)
297# by 0x118FDCCC: std::sync::once::Once::call_inner (once.rs:341)
298# by 0x1139C761: UnknownInlinedFun (once.rs:228)
299{
300  Bug 1418083 Servo::TraverseSubtree, January 2018
301  Memcheck:Cond
302  fun:*ZN3std4sync4once4Once9call_once*
303  fun:*ZN3std4sync4once4Once10call_inner*
304  ...
305  fun:Servo_TraverseSubtree
306}
307
308# Issue triggered by rust 1.23.0 on builds of stylo.
309{
310  Bug 1418083 SelectorList::parse, January 2018
311  Memcheck:Cond
312  fun:_ZN36_$LT$smallvec..SmallVec*
313  fun:_ZN52_$LT$selectors..parser..SelectorList*
314}
315
316# Conditional jump or move depends on uninitialised value(s)
317#    at 0x118720EA: <core::slice::Iter<'a, T> as core::iter::iterator::Iterator>::all::{{closure}} (mod.rs:1173)
318#    by 0x11871EF6: style::media_queries::MediaList::evaluate (mod.rs:1277)
319{
320  Bug 1430608 nsMediaFeatures, January 2018
321	Memcheck:Cond
322	fun:_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$3all*
323	fun:_ZN5style13media_queries9MediaList8evaluate*
324}
325
326# Several issues triggered by enabling stylo-chrome.
327
328# Conditional jump or move depends on uninitialised value(s)
329#    at 0x11F88693: style::properties::LonghandId::parse_value (heap.rs:0)
330#    by 0x1203BBAB: style::properties::UnparsedValue::substitute_variables (parser.rs:594)
331#    by 0x11CFCE33: style::properties::cascade (properties.rs:135672)
332{
333  Bug 1437796 LonghandId::parse_value, January 2018
334  Memcheck:Cond
335  fun:_ZN5style10properties10LonghandId11parse_value*
336  fun:_ZN5style10properties13UnparsedValue20substitute_variables*
337  fun:_ZN5style10properties7cascade*
338}
339
340# Conditional jump or move depends on uninitialised value(s)
341#    at 0x11DF7AF6: <smallvec::SmallVec<A>>::grow (raw_vec.rs:0)
342#    by 0x11DF6ED0: Servo_InvalidateStyleForDocStateChanges (lib.rs:475)
343#    by 0x10394B7E: mozilla::ServoStyleSet::InvalidateStyleForDocumentStateChanges(mozilla::EventStates) (ServoStyleSet.cpp:248)
344{
345   Bug 1437796 SmallVec::grow in Servo_InvalidateStyleForDocStateChanges, January 2018
346   Memcheck:Cond
347   fun:_ZN36_$LT$smallvec..SmallVec$LT$A$GT$$GT$4grow*
348   fun:Servo_InvalidateStyleForDocStateChanges
349   fun:_ZN7mozilla13ServoStyleSet38InvalidateStyleForDocumentStateChangesENS_11EventStatesE
350}
351
352###################################################
353#  For valgrind-mochitest ("tc-M-V [tier 2]") runs on taskcluster.
354#  See bug 1248365.
355#  These are specific to Ubuntu 12.04.5, 64-bit.
356###################################################
357
358
359# Not sure what this is.  Is it the well-known
360# Memcheck-being-confused-by-zlib thing?  I suspect so.
361#
362# Conditional jump or move depends on uninitialised value(s)
363#    at 0xB6154E0: inflateReset2 (in /lib/x86_64-linux-gnu/libz.so.1.2.3.4)
364#    by 0xB6155D8: inflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.3.4)
365#    by 0xADDE253: png_create_read_struct_2
366#                  (in /lib/x86_64-linux-gnu/libpng12.so.0.46.0)
367#  Uninitialised value was created by a heap allocation
368#    at 0x4C2D027: malloc (coregrind/m_replacemalloc/vg_replace_malloc.c:298)
369#    by 0xADE960F: png_malloc (in /lib/x86_64-linux-gnu/libpng12.so.0.46.0)
370#    by 0xADD1B95: ??? (in /lib/x86_64-linux-gnu/libpng12.so.0.46.0)
371#    by 0xB6155B6: inflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.3.4)
372#    by 0xADDE253: png_create_read_struct_2
373#                  (in /lib/x86_64-linux-gnu/libpng12.so.0.46.0)
374#    by 0x15707869: ??? (in /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/
375#                   loaders/libpixbufloader-png.so)
376{
377   Bug 1248365: mochitest-libz-1
378   Memcheck:Cond
379   fun:inflateReset2
380   fun:inflateInit2_
381   fun:png_create_read_struct_2
382}
383
384
385# I don't know what this is.
386#
387# Conditional jump or move depends on uninitialised value(s)
388#    at 0x39608257: ??? (in /usr/lib/x86_64-linux-gnu/librsvg-2.so.2.36.1)
389#    by 0x39608E96: rsvg_handle_get_pixbuf_sub (in /usr/lib/x86_64-linux-gnu/l
390#    by 0x37D00D2A: ??? (in /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/lo
391#    by 0x88FF740: gdk_pixbuf_loader_close (in /usr/lib/x86_64-linux-gnu/libgd
392#    by 0x88FBA48: ??? (in /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0.26
393#    by 0x88FD290: gdk_pixbuf_new_from_stream_at_scale (in /usr/lib/x86_64-lin
394#    by 0x6EF96A7: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-3.so.0.400.2)
395#    by 0x6EFC2B1: gtk_icon_info_load_icon (in /usr/lib/x86_64-linux-gnu/libgt
396#  Uninitialised value was created by a stack allocation
397#    at 0xAB786B0: ??? (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
398{
399   Bug 1248365: mochitest-librsvg-1
400   Memcheck:Cond
401   obj:/*/librsvg-2.so.2.36*
402   fun:rsvg_handle_get_pixbuf_sub
403   obj:/*/libpixbufloader-svg.so*
404   fun:gdk_pixbuf_loader_close
405}
406
407
408# There now follow some suppressions to do with libpixman.  There are two
409# variants, one for errors in the system libpixman, and one for errors in
410# our in-tree copy.  I suspect that all of these sse2 compositing reports
411# are Memcheck false positives, possibly to do with inaccurate
412# instrumentation of the function combine1() in
413# gfx/cairo/libpixman/src/pixman-sse2.c.
414#
415# Conditional jump or move depends on uninitialised value(s)
416#    at 0xAB93A10: ??? (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
417#    by 0xAB78927: ??? (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
418#    by 0xAB40B0B: pixman_image_composite32 (in /usr/lib/x86_64-linux-gnu/libp
419#    by 0x865C95C: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11000.2)
420#    by 0x865E3CB: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11000.2)
421#    by 0x865F6EA: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11000.2)
422#    by 0x865F968: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11000.2)
423#    by 0x867D7C3: ??? (in /usr/lib/x86_64-linux-gnu/libcairo.so.2.11000.2)
424#  Uninitialised value was created by a stack allocation
425#    at 0xAB786B0: ??? (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
426{
427   Bug 1248365: mochitest-libpixman-1
428   Memcheck:Cond
429   obj:/*/libpixman-1.so.0.30*
430   obj:/*/libpixman-1.so.0.30*
431   fun:pixman_image_composite32
432}
433
434
435# Conditional jump or move depends on uninitialised value(s)
436#    at 0xF9EA219: sse2_composite_over_8888_8888
437#    by 0xF9F5B5F: _moz_pixman_image_composite32
438#    by 0xF96E29E: _clip_and_composite_boxes
439#    by 0xF96F79D: _cairo_image_surface_fill
440#    by 0xF98790C: _cairo_surface_fill
441#    by 0xF96FE2E: _cairo_gstate_fill
442#    by 0xF98B3D9: _moz_cairo_fill_preserve
443#    by 0xE4CF383: mozilla::gfx::DrawTargetCairo::DrawPattern(mozilla::gfx:
444#  Uninitialised value was created by a stack allocation
445#    at 0xB8E46B0: ??? (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
446{
447   Bug 1248365: mochitest-libpixman-2
448   Memcheck:Cond
449   fun:sse2_composite_over_8888_8888
450   fun:_moz_pixman_image_composite32
451   fun:_clip_and_composite_boxes
452   fun:_cairo_image_surface_fill
453}
454
455
456# Conditional jump or move depends on uninitialised value(s)
457#    at 0xF9D56AE: sse2_combine_over_u (in /builds/worker/workspace/build/applic
458#    by 0xF9D05D4: general_composite_rect (in /builds/worker/workspace/build/app
459#    by 0xF9F5B5F: _moz_pixman_image_composite32 (in /builds/worker/workspace/bu
460#    by 0xF96CF63: _clip_and_composite (in /builds/worker/workspace/build/applic
461#    by 0xF96D656: _clip_and_composite_boxes.part.32 (in /builds/worker/workspac
462#    by 0xF96E328: _clip_and_composite_boxes (in /builds/worker/workspace/build/
463#    by 0xF96F79D: _cairo_image_surface_fill (in /builds/worker/workspace/build/
464#    by 0xF98790C: _cairo_surface_fill (in /builds/worker/workspace/build/applic
465#  Uninitialised value was created by a stack allocation
466#    at 0xF9D024D: general_composite_rect (in /builds/worker/workspace/build/app
467#
468{
469   Bug 1248365: mochitest-libpixman-3
470   Memcheck:Cond
471   fun:sse2_combine_over_u
472   fun:general_composite_rect
473   fun:_moz_pixman_image_composite32
474   fun:_clip_and_composite*
475}
476
477
478# Conditional jump or move depends on uninitialised value(s)
479#    at 0xE626A5C: mozilla::image::imgFrame::Optimize() (in /builds/worker/work
480#    by 0xE626C68: mozilla::image::imgFrame::UnlockImageData() (in /home/work
481#    by 0xE608E8F: mozilla::image::RawAccessFrameRef::~RawAccessFrameRef() (i
482#    by 0xE61F5E4: mozilla::image::Decoder::~Decoder() (in /builds/worker/works
483#    by 0xE630E32: mozilla::image::nsIconDecoder::~nsIconDecoder() (in /home/
484#    by 0xE61A5B2: mozilla::image::Decoder::Release() (in /builds/worker/worksp
485#    by 0xE61DD73: mozilla::image::NotifyDecodeCompleteWorker::~NotifyDecodeC
486#    by 0xE61DD8F: mozilla::image::NotifyDecodeCompleteWorker::~NotifyDecodeC
487#  Uninitialised value was created by a stack allocation
488#    at 0xB8E46B0: ??? (in /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
489{
490   Bug 1248365: mochitest-libpixman-4
491   Memcheck:Cond
492   fun:_ZN7mozilla5image8imgFrame8OptimizeEv
493   fun:_ZN7mozilla5image8imgFrame15UnlockImageDataEv
494   fun:_ZN7mozilla5image17RawAccessFrameRefD1Ev
495   fun:_ZN7mozilla5image7DecoderD1Ev
496}
497
498
499# Not sure what this.  I can't reproduce it locally despite much trying.
500# Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s)
501#    at 0x4E4533D: ??? (syscall-template.S:82)
502#    by 0xE12C0A7: IPC::Channel::ChannelImpl::ProcessOutgoingMessages() (in /h
503#    by 0xE142FD0: RunnableMethod<IPC::Channel, bool (IPC::Channel::*)(IPC::Me
504#    by 0xE1240EA: MessageLoop::RunTask(Task*) (in /builds/worker/workspace/buil
505#    by 0xE128A46: MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask
506#    by 0xE128B6D: MessageLoop::DoWork() (in /builds/worker/workspace/build/appl
507#    by 0xE12272C: base::MessagePumpLibevent::Run(base::MessagePump::Delegate*
508#    by 0xE124155: MessageLoop::Run() (in /builds/worker/workspace/build/applica
509{
510   Bug 1248365: mochitest-sendmsg-1
511   Memcheck:Param
512   sendmsg(msg.msg_iov[0])
513   obj:/lib/x86_64-linux-gnu/libpthread-2.15.so
514   fun:_ZN3IPC7Channel11ChannelImpl23ProcessOutgoingMessagesEv
515   fun:_ZN14RunnableMethodIN3IPC7ChannelEMS1_FbPNS0_7MessageEEN7mozilla5Tuple*
516}
517
518
519# I can't repro this either.
520# Conditional jump or move depends on uninitialised value(s)
521#    at 0x418E7E7C: ??? (in /usr/lib/x86_64-linux-gnu/libavcodec.so.53.35.0)
522#    by 0x4192D620: ??? (in /usr/lib/x86_64-linux-gnu/libavcodec.so.53.35.0)
523#    by 0x4192E717: ??? (in /usr/lib/x86_64-linux-gnu/libavcodec.so.53.35.0)
524#    by 0x41711BC4: ??? (in /usr/lib/x86_64-linux-gnu/libavcodec.so.53.35.0)
525#    by 0x41B08B6A: avcodec_open2 (in /usr/lib/x86_64-linux-gnu/libavcodec.so.
526#    by 0xEEAD89C: mozilla::FFmpegDataDecoder<53>::InitDecoder() (in /home/wor
527#    by 0xEEAE42B: mozilla::FFmpegVideoDecoder<53>::Init() (in /builds/worker/wo
528#    by 0xEEA4C07: mozilla::H264Converter::Init() (in /builds/worker/workspace/b
529#  Uninitialised value was created by a heap allocation
530#    at 0x4C2D11F: realloc (vg_replace_malloc.c:785)
531#    by 0x406196: moz_xrealloc (in /builds/worker/workspace/build/application/fi
532#    by 0xDEB43AC: nsTArrayInfallibleAllocator::ResultTypeProxy nsTArray_base<
533#    by 0xEEAD850: mozilla::FFmpegDataDecoder<53>::InitDecoder() (in /home/wor
534#    by 0xEEAE42B: mozilla::FFmpegVideoDecoder<53>::Init() (in /builds/worker/wo
535{
536   Bug 1248365: mochitest-libavcodec-1-c
537   Memcheck:Cond
538   obj:/*/libavcodec.so.53*
539   obj:/*/libavcodec.so.53*
540   obj:/*/libavcodec.so.53*
541   obj:/*/libavcodec.so.53*
542}
543{
544   Bug 1248365: mochitest-libavcodec-1-v8
545   Memcheck:Value8
546   obj:/*/libavcodec.so.53*
547   obj:/*/libavcodec.so.53*
548   obj:/*/libavcodec.so.53*
549   obj:/*/libavcodec.so.53*
550}
551
552
553# Not sure what this is, but I am inclined to think it is also probably a
554# SSE2-induced false positive similar to mochitest-libpixman-2 above.
555# Use of uninitialised value of size 8
556#    at 0xE4F3E89: FastConvertYUVToRGB32Row (in /builds/worker/workspace/build/a
557#    by 0xE4F4A6D: mozilla::gfx::ConvertYCbCrToRGB32(unsigned char const*, uns
558#    by 0xE4F4B17: mozilla::gfx::ConvertYCbCrToRGB(mozilla::layers::PlanarYCbC
559#    by 0xE5227CB: mozilla::layers::PlanarYCbCrImage::GetAsSourceSurface() (in
560#    by 0xE5B2465: mozilla::layers::SharedPlanarYCbCrImage::GetAsSourceSurface
561#    by 0xE52FE44: mozilla::layers::BasicImageLayer::Paint(mozilla::gfx::DrawT
562#    by 0xE5618A1: mozilla::layers::BasicLayerManager::PaintSelfOrChildren(moz
563#    by 0xE560F83: mozilla::layers::BasicLayerManager::PaintLayer(gfxContext*,
564#  Uninitialised value was created by a stack allocation
565#    at 0x434B36B2: ??? (in /usr/lib/x86_64-linux-gnu/libavcodec.so.53.35.0)
566{
567   Bug 1248365: FastConvertYUVToRGB32Row-1
568   Memcheck:Value8
569   fun:FastConvertYUVToRGB32Row
570   fun:_ZN7mozilla3gfx19ConvertYCbCrToRGB32*
571   fun:_ZN7mozilla3gfx17ConvertYCbCrToRGB*
572   fun:_ZN7mozilla6layers16PlanarYCbCrImage18GetAsSourceSurface*
573}
574
575# Similarly:
576# Conditional jump or move depends on uninitialised value(s)
577#    at 0xFDAD1D1: sse41::blit_row_s32a_opaque(unsigned int*, unsigned int con
578#    by 0xFD60FA9: Sprite_D32_S32::blitRect(int, int, int, int) (in /home/work
579#    by 0xFEB9E0D: SkScan::FillIRect(SkIRect const&, SkRegion const*, SkBlitte
580#    by 0xFEBDDF3: SkScan::FillIRect(SkIRect const&, SkRasterClip const&, SkBl
581{
582   SKIA and SSE4, Jan 2017
583   Memcheck:Cond
584   fun:_ZN5sse41L20blit_row_s32a_opaque*
585   fun:_ZN14Sprite_D32_S328blitRect*
586   fun:_ZN6SkScan9FillIRect*
587   fun:_ZN6SkScan9FillIRect*
588}
589
590# This is probably a V false positive, due to an insufficiently accurate
591# description of the ioctl(SIOCETHTOOL) behavior.
592# Syscall param ioctl(SIOCETHTOOL) points to uninitialised byte(s)
593#    at 0x5D5CBF7: ioctl (syscall-template.S:82)
594#    by 0xF58EB67: nr_stun_get_addrs (in /builds/worker/workspace/build/applica
595#    by 0xF594791: nr_stun_find_local_addresses (in /builds/worker/workspace/bu
596#    by 0xF58A237: nr_ice_get_local_addresses (in /builds/worker/workspace/buil
597#    by 0xF58ADDE: nr_ice_gather (in /builds/worker/workspace/build/application
598#    by 0xE43F35F: mozilla::NrIceCtx::StartGathering() (in /builds/worker/works
599#    by 0xE419560: mozilla::PeerConnectionMedia::EnsureIceGathering_s() (in /
600#    by 0xE41A11C: mozilla::runnable_args_memfn<RefPtr<mozilla::PeerConnectio
601#  Address 0x1cc3fb48 is on thread 6's stack
602#  in frame #1, created by nr_stun_get_addrs (???:)
603{
604   Bug 1248365: mochitest-ioctl(SIOCETHTOOL)-1
605   Memcheck:Param
606   ioctl(SIOCETHTOOL)
607   fun:ioctl
608   fun:nr_stun_get_addrs
609   fun:nr_stun_find_local_addresses
610}
611
612
613# This looks like uninitialised padding bytes in a structure owned
614# by libfontconfig.  So there's nothing we can do about it.
615# Syscall param write(buf) points to uninitialised byte(s)
616#    at 0x4E44CCD: ??? (syscall-template.S:82)
617#    by 0x9F1FF56: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
618#    by 0x9F2679B: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
619#    by 0x9F22B98: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
620#    by 0x9F22C5F: FcConfigAppFontAddDir (in /usr/lib/x86_64-linux-gnu/libfon
621#    by 0xE850173: gfxFcPlatformFontList::ActivateBundledFonts() (in /home/wo
622#    by 0xE852258: gfxFcPlatformFontList::InitFontListForPlatform() (in /home
623#    by 0xE895E21: gfxPlatformFontList::InitFontList() (in /builds/worker/works
624#  Address 0x2316663c is 156 bytes inside a block of size 1,448 alloc'd
625#    at 0x4C2CF71: malloc (vg_replace_malloc.c:299)
626#    by 0x9F1FD1D: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
627#    by 0x9F26788: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
628#    by 0x9F22B98: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
629#    by 0x9F22C5F: FcConfigAppFontAddDir (in /usr/lib/x86_64-linux-gnu/libfon
630#    by 0xE850173: gfxFcPlatformFontList::ActivateBundledFonts() (in /home/wo
631#    by 0xE852258: gfxFcPlatformFontList::InitFontListForPlatform() (in /home
632#    by 0xE895E21: gfxPlatformFontList::InitFontList() (in /builds/worker/works
633{
634   Bug 1248365: libfontconfig-1
635   Memcheck:Param
636   write(buf)
637   obj:/*/libpthread*.so*
638   obj:/*/libfontconfig.so*
639   ...
640   obj:/*/libfontconfig.so*
641   fun:FcConfigAppFontAddDir
642}
643
644
645# There's nothing we can do about these short of throwing in
646# --show-mismatched-frees=no, but that's a bit drastic, so for now,
647# just suppress them.  A typical error is:
648#
649# Mismatched free() / delete / delete []
650#    at 0x4C2BE97: free (vg_replace_malloc.c:530)
651#    by 0xFCD09EC: ots::ots_post_free(ots::Font*) (in /builds/worker/workspace/
652#    by 0xFCC600E: ots::Font::~Font() (in /builds/worker/workspace/build/applic
653#    by 0xFCCBFA5: ots::OTSContext::Process(ots::OTSStream*, unsigned char co
654#    by 0xE7D7C8D: gfxUserFontEntry::SanitizeOpenTypeData(unsigned char const
655#    by 0xE7E371D: gfxUserFontEntry::LoadPlatformFont(unsigned char const*, u
656#    by 0xE7E48AA: gfxUserFontEntry::FontDataDownloadComplete(unsigned char c
657#    by 0xF49D25B: nsFontFaceLoader::OnStreamComplete(nsIStreamLoader*, nsISu
658#  Address 0x15671f00 is 0 bytes inside a block of size 490 alloc'd
659#    at 0x4C2CAEE: operator new(unsigned long) (vg_replace_malloc.c:332)
660#    by 0xF6AB737: std::vector<unsigned short, std::allocator<unsigned short>
661#    by 0xFCD0FDE: ots::ots_post_parse(ots::Font*, unsigned char const*, unsi
662#    by 0xFCCA3D9: (anonymous namespace)::ProcessGeneric(ots::OpenTypeFile*,
663#    by 0xFCCB17E: (anonymous namespace)::ProcessTTF(ots::OpenTypeFile*, ots:
664#    by 0xFCCBA54: ots::OTSContext::Process(ots::OTSStream*, unsigned char co
665#    by 0xE7D7C8D: gfxUserFontEntry::SanitizeOpenTypeData(unsigned char const
666#    by 0xE7E371D: gfxUserFontEntry::LoadPlatformFont(unsigned char const*, u
667{
668   Bug 1248365: ots::Font::~Font()-1
669   Memcheck:Free
670   fun:free
671   fun:_ZN3ots13ots_post_free*
672   fun:_ZN3ots4FontD1Ev
673   fun:_ZN3ots10OTSContext7Process*
674}
675
676# and various similar:
677{
678   ots mismatched frees, Jan 2017, #1
679   Memcheck:Free
680   fun:_ZdlPv
681   fun:_ZN3ots14ots_glyf_parse*
682   fun:_ZN12_GLOBAL__N_114ProcessGenericEPN3ots12OpenTypeFile*
683   fun:_ZN12_GLOBAL__N_110ProcessTTFEPN3ots12OpenTypeFile*
684}
685{
686   ots mismatched frees, Jan 2017, #2
687   Memcheck:Free
688   fun:_ZdlPv
689   fun:_ZN3ots13ots_cff_parse*
690   fun:_ZN12_GLOBAL__N_114ProcessGenericEPN3ots12OpenTypeFile*
691   fun:_ZN3ots10OTSContext7ProcessEPNS_9OTSStream*
692}
693{
694   ots mismatched frees, Jan 2017, #3
695   Memcheck:Free
696   fun:_ZdlPv
697   fun:_ZN3ots13ots_cff_parse*
698   fun:_ZN12_GLOBAL__N_114ProcessGenericEPN3ots12OpenTypeFile*
699   fun:_ZN12_GLOBAL__N_110Process*
700}
701{
702   ots mismatched frees, Jan 2017, #4
703   Memcheck:Free
704   fun:_ZdlPv
705   fun:_ZN3ots12ots_cff_free*
706   fun:_ZN3ots4FontD1Ev*
707   fun:_ZN3ots10OTSContext7Process*
708}
709{
710   ots mismatched frees, Jan 2017, #5
711   Memcheck:Free
712   fun:_ZdlPv
713   fun:_ZN3ots13ots_loca_free*
714   fun:_ZN3ots4FontD1Ev*
715   fun:_ZN3ots10OTSContext7Process*
716}
717{
718   ots mismatched frees, Jan 2017, #6
719   Memcheck:Free
720   fun:_ZdlPv
721   fun:_ZN3ots14ots_glyf_parse*
722   fun:_ZN12_GLOBAL__N_114ProcessGenericEPN3ots12OpenTypeFile*
723   fun:_ZN3ots10OTSContext7ProcessEPNS_9OTSStream*
724}
725
726{
727   map_or<selectors::parser::Combinator,bool,closure> #1 (see bug 1365915)
728   Memcheck:Cond
729   fun:map_or<selectors::parser::Combinator,bool,closure>
730   fun:_ZN9selectors8matching33matches_complex_selector_internal*
731   fun:_ZN9selectors8matching24matches_complex_selector*
732   fun:matches_selector<style::gecko::wrapper::GeckoElement,closure>
733}
734
735{
736   map_or<selectors::parser::Combinator,bool,closure> #2 (see bug 1365915)
737   Memcheck:Cond
738   fun:map_or<selectors::parser::Combinator,bool,closure>
739   fun:_ZN9selectors8matching33matches_complex_selector_internal*
740   fun:_ZN9selectors8matching24matches_complex_selector*
741   fun:{{closure}}<closure>
742}
743
744# more leaks in libLLVM-3.6-mesa.so, August 2017.  See bug 1338651.
745{
746   static-object-leaks-in-libLLVM-3.6-mesa.so.  See bug 1338651.
747   Memcheck:Leak
748   match-leak-kinds: definite
749   fun:_Znwm
750   obj:/*/lib*/libLLVM-3.6-mesa.so
751   obj:/*/lib*/libLLVM-3.6-mesa.so
752}
753