# Full list is tracked through meta bug 793882

####################################
#  Leaks in third party libraries  #
####################################

{
   Bug 793537
   Memcheck:Leak
   ...
   obj:/usr/lib64/libpango-1.0.so.0.2800.1
   ...
}
{
   Bug 793598
   Memcheck:Leak
   ...
   obj:/lib64/libdbus-1.so.3.4.0
   ...
}
{
   Bug 793600
   Memcheck:Leak
   fun:realloc
   obj:/usr/lib64/libfontconfig.so.1.4.4
   ...
   fun:FcDefaultSubstitute
   fun:_ZN17gfxPangoFontGroup11MakeFontSetEP14_PangoLanguagedP9nsAutoRefI10_FcPatternE
   ...
}
# Fontconfig is going fancy with its cache structure and that confuses valgrind.
# https://bugs.freedesktop.org/show_bug.cgi?id=8215
# https://bugs.freedesktop.org/show_bug.cgi?id=8428
{
   Bug 1187649
   Memcheck:Leak
   match-leak-kinds: definite
   fun:realloc
   fun:FcPatternObjectInsertElt
   ...
}
# With older versions of fontconfig (e.g. 2.8.0 on taskcluster systems),
# there's an uninitialized memory usage and leak when loading app fonts.
{
   Bug 1231701
   Memcheck:Param
   write(buf)
   ...
   fun:FcDirCacheWrite
   fun:FcDirCacheScan
   fun:FcConfigAddDirList
   fun:FcConfigAppFontAddDir
   ...
}
{
   Bug 1231701
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:FcDirScanConfig
   fun:FcDirCacheScan
   fun:FcConfigAddDirList
   fun:FcConfigAppFontAddDir
   ...
}
# Leaks due to either Gtk+3 or cairo, but Gecko is not directly involved with
# those cairo interactions.  One suspected cause is Gecko not closing the
# display to work around a bug in old Gtk+3 versions.  See also bug 1228724.
{
   Bug 1187649
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:_cairo_freelist_alloc
   fun:_cairo_xlib_display_queue_resource
   fun:_cairo_xlib_surface_finish
   ...
}
# The following leak is deep in Gtk+3, and it doesn't seem we're doing
# anything wrong on our end with the container objects. This suppression
# is purposefully verbose so as to avoid catching actual leaks due to
# Gecko code.
# Note: valgrind doesn't support more than 24 elements in a suppression stack.
{
   Bug 1187649
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:g_malloc
   fun:g_slice_alloc
   fun:g_list_prepend
   fun:gtk_combo_box_get_path_for_child
   fun:gtk_container_get_path_for_child
   fun:gtk_widget_get_path
   fun:_gtk_widget_update_path
   fun:reset_style_recurse
   fun:gtk_widget_reset_style
   fun:gtk_widget_set_parent
   fun:gtk_combo_box_add
   fun:g_cclosure_marshal_VOID__OBJECTv
   fun:_g_closure_invoke_va
   fun:g_signal_emit_valist
   fun:g_signal_emit
   fun:gtk_combo_box_constructor
   fun:g_object_newv
   fun:g_object_new_valist
   fun:g_object_new
   ...
}
# set_color() in gtkstyle.c of GTK version 3.4.4 only can leak GdkRGBA
# allocations when the theme has transparent colors:
# https://git.gnome.org/browse/gtk+/tree/gtk/deprecated/gtkstyle.c?h=3.4.4#n676
{
   Bug 1250704
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:g_malloc
   fun:g_slice_alloc
   fun:g_slice_copy
   fun:boxed_proxy_lcopy_value
   fun:gtk_style_context_get_valist
   fun:gtk_style_context_get
   fun:set_color
   fun:gtk_style_update_from_context
   fun:gtk_style_constructed
   fun:g_object_newv
   fun:g_object_new_valist
   fun:g_object_new
   ...
}
{
   Bug 794366
   Memcheck:Leak
   ...
   obj:/usr/lib64/libgtk-x11-2.0.so.0.1800.9
   ...
}
{
   Bug 794368
   Memcheck:Leak
   ...
   obj:/usr/lib64/libXrandr.so.2.2.0
   ...
}
{
   Bug 794373
   Memcheck:Leak
   ...
   obj:/lib64/libgobject-2.0.so.0.2200.5
   ...
}
{
   Bug 966673
   Memcheck:Leak
   fun:malloc
   obj:/lib64/libresolv-2.12.so
   ...
   fun:gaih_inet
   fun:getaddrinfo
   fun:PR_GetAddrInfoByName
   ...
}
{
   Bug 979242
   Memcheck:Leak
   fun:calloc
   fun:xcb_connect_to_fd
   fun:xcb_connect_to_display_with_auth_info
   fun:_XConnectXCB
   fun:XOpenDisplay
   fun:gdk_display_open
   ...
}

###################################
#  Leaks in short lived precesses #
###################################

{
   Bug 984196
   Memcheck:Leak
   ...
   fun:glxtest
   ...
}

#########################################
#  Uninitialised value false positives  #
#########################################

# This concerns a false positive pertaining to Memcheck's overly-
# conservative instrumentation of CPUID.  See bug 1288618 comments
# 119 through 127.
{
   Bug 1288618 comments 119 through 127
   Memcheck:Cond
   fun:_ZN6SkOptsL4initEv
   fun:sk_once_no_arg_adaptor
}

{
   Bug 1288618 comments 119 through 127 part 2
   Memcheck:Cond
   fun:__get_cpuid
   fun:cpuid
   fun:_ZN6SkOptsL4initEv
   fun:sk_once_no_arg_adaptor
}