# Valgrind error suppression file
{
   dbus-glib, https://bugs.freedesktop.org/show_bug.cgi?id=14125
   Memcheck:Addr4
   fun:g_hash_table_foreach
   obj:/usr/lib/libdbus-glib-1.so.2.1.0
   fun:g_object_run_dispose
}

{
   libdbus shared connection via tp_get_bus (1)
   Memcheck:Leak
   ...
   fun:dbus_malloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_get_bus
}

{
   libdbus shared connection via tp_dbus_daemon_dup (1)
   Memcheck:Leak
   ...
   fun:dbus_malloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_dbus_daemon_dup
}

{
   libdbus shared connection via tp_get_bus (2)
   Memcheck:Leak
   ...
   fun:dbus_malloc0
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_get_bus
}

{
   libdbus shared connection via tp_dbus_daemon_dup (2)
   Memcheck:Leak
   ...
   fun:dbus_malloc0
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_dbus_daemon_dup
}

{
   libdbus shared connection via tp_get_bus (3)
   Memcheck:Leak
   ...
   fun:dbus_realloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_get_bus
}

{
   libdbus shared connection via tp_dbus_daemon_dup (3)
   Memcheck:Leak
   ...
   fun:dbus_realloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_dbus_daemon_dup
}

{
   libdbus shared connection via tp_get_bus (4)
   Memcheck:Leak
   fun:malloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_get_bus
}

{
   libdbus shared connection via tp_dbus_daemon_dup (4)
   Memcheck:Leak
   fun:malloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_dbus_daemon_dup
}

{
   libdbus shared connection via tp_get_bus (5)
   Memcheck:Leak
   fun:malloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_get_bus
}

{
   libdbus shared connection via tp_dbus_daemon_dup (5)
   Memcheck:Leak
   fun:malloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_dbus_daemon_dup
}

{
   libdbus shared connection via tp_get_bus (6)
   Memcheck:Leak
   fun:calloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_get_bus
}

{
   libdbus shared connection via tp_dbus_daemon_dup (6)
   Memcheck:Leak
   fun:calloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_dbus_daemon_dup
}

{
   libdbus shared connection via tp_get_bus (7)
   Memcheck:Leak
   fun:calloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_get_bus
}

{
   libdbus shared connection via tp_dbus_daemon_dup (7)
   Memcheck:Leak
   fun:calloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_dbus_daemon_dup
}

{
   libdbus shared connection via tp_get_bus (8)
   Memcheck:Leak
   fun:calloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_get_bus
}

{
   libdbus shared connection via tp_dbus_daemon_dup (8)
   Memcheck:Leak
   fun:calloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_dbus_daemon_dup
}

{
   libdbus shared connection via tp_get_bus (9)
   Memcheck:Leak
   fun:malloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_get_bus
}

{
   libdbus shared connection via tp_dbus_daemon_dup (9)
   Memcheck:Leak
   fun:malloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_dbus_daemon_dup
}

{
   libdbus shared connection via tp_get_bus (10)
   Memcheck:Leak
   fun:calloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_get_bus
}

{
   libdbus shared connection via tp_dbus_daemon_dup (10)
   Memcheck:Leak
   fun:calloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_dbus_daemon_dup
}

{
   libdbus shared connection via tp_get_bus (11)
   Memcheck:Leak
   fun:calloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_get_bus
}

{
   libdbus shared connection via tp_dbus_daemon_dup (11)
   Memcheck:Leak
   fun:calloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_dbus_daemon_dup
}

{
   libdbus shared connection via tp_get_bus (12)
   Memcheck:Leak
   fun:realloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_get_bus
}

{
   libdbus shared connection via tp_dbus_daemon_dup (12)
   Memcheck:Leak
   fun:realloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_dbus_daemon_dup
}

{
   libdbus shared connection via tp_get_bus (13. sigh.)
   Memcheck:Leak
   fun:malloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_get_bus
}

{
   libdbus shared connection via tp_dbus_daemon_dup (13. sigh.)
   Memcheck:Leak
   fun:malloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_dbus_daemon_dup
}

{
   libdbus shared connection via tp_get_bus (14)
   Memcheck:Leak
   fun:malloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_get_bus
}

{
   libdbus shared connection via tp_dbus_daemon_dup (14)
   Memcheck:Leak
   fun:malloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_dbus_daemon_dup
}

{
   libdbus shared connection via tp_get_bus (15)
   Memcheck:Leak
   fun:calloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_get_bus
}

{
   libdbus shared connection via tp_dbus_daemon_dup (15)
   Memcheck:Leak
   fun:calloc
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   obj:*/libdbus-1.so.*
   fun:dbus_g_bus_get
   fun:tp_dbus_daemon_dup
}

{
   anything called by g_type_init_with_debug_flags
   Memcheck:Leak
   ...
   fun:g_type_init_with_debug_flags
}

{
   static GType registration
   Memcheck:Leak
   ...
   fun:g_realloc
   obj:/usr/lib/libgobject-2.0.so.*
   obj:/usr/lib/libgobject-2.0.so.*
   fun:g_type_register_static
}

{
   g_slice_init_nomessage (1)
   Memcheck:Leak
   fun:calloc
   fun:g_malloc0
   obj:/usr/lib/libglib-2.0.so.*
   fun:g_slice_alloc
}

{
   creating param specs in tp_proxy_class_intern_init
   Memcheck:Leak
   fun:memalign
   fun:posix_memalign
   fun:slab_allocator_alloc_chunk
   fun:g_slice_alloc
   fun:g_slice_alloc0
   fun:g_type_create_instance
   fun:g_param_spec_internal
   fun:g_param_spec_string
}

{
   shared global default g_main_context (1)
   Memcheck:Leak
   fun:calloc
   fun:g_malloc0
   fun:g_main_context_new
   fun:g_main_context_default
}

{
   shared global default g_main_context (2)
   Memcheck:Leak
   fun:memalign
   fun:posix_memalign
   fun:slab_allocator_alloc_chunk
   fun:g_slice_alloc
   fun:g_ptr_array_sized_new
   fun:g_ptr_array_new
   fun:g_main_context_new
   fun:g_main_context_default
}

{
   shared global default g_main_context (2) (with G_SLICE_DEBUG=always-malloc)
   Memcheck:Leak
   fun:malloc
   fun:g_malloc
   fun:g_slice_alloc
   fun:g_ptr_array_sized_new
   fun:g_ptr_array_new
   fun:g_main_context_new
   fun:g_main_context_default
}

{
   GQuarks can't be freed
   Memcheck:Leak
   ...
   fun:g_quark_from_static_string
}

{
   dlopen initialization, triggered by handle-leak-debug code on glibc 2.7
   Memcheck:Leak
   fun:malloc
   fun:local_strdup
   fun:_dl_map_object
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
   fun:do_dlopen
   fun:_dl_catch_error
   fun:dlerror_run
   fun:__libc_dlopen_mode
   fun:init
   fun:backtrace
   fun:handle_leak_debug_bt
   fun:dynamic_ensure_handle
   fun:tp_handle_ensure
}

{
   dlopen initialization, triggered by handle-leak-debug code on older glibc
   Memcheck:Leak
   fun:malloc
   fun:_dl_map_object
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
   fun:do_dlopen
   fun:_dl_catch_error
   fun:dlerror_run
   fun:__libc_dlopen_mode
   fun:init
   fun:backtrace
   fun:handle_leak_debug_bt
   fun:dynamic_ensure_handle
   fun:tp_handle_ensure
}

{
   dlopen initialization, triggered by handle-leak-debug code (2)
   Memcheck:Leak
   fun:malloc
   fun:_dl_new_object
   fun:_dl_map_object_from_fd
   fun:_dl_map_object
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
   fun:do_dlopen
   fun:_dl_catch_error
   fun:dlerror_run
   fun:__libc_dlopen_mode
   fun:init
   fun:backtrace
   fun:handle_leak_debug_bt
   fun:dynamic_ensure_handle
   fun:tp_handle_ensure
}

{
   dlopen initialization, triggered by handle-leak-debug code (3)
   Memcheck:Leak
   fun:malloc
   fun:_dl_map_object_deps
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
   fun:do_dlopen
   fun:_dl_catch_error
   fun:dlerror_run
   fun:__libc_dlopen_mode
   fun:init
   fun:backtrace
   fun:handle_leak_debug_bt
   fun:dynamic_ensure_handle
   fun:tp_handle_ensure
}

{
   dlopen initialization, triggered by handle-leak-debug code (4)
   Memcheck:Leak
   fun:calloc
   fun:_dl_check_map_versions
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
   fun:do_dlopen
   fun:_dl_catch_error
   fun:dlerror_run
   fun:__libc_dlopen_mode
   fun:init
   fun:backtrace
   fun:handle_leak_debug_bt
   fun:dynamic_ensure_handle
   fun:tp_handle_ensure
   fun:pretend_connected
   fun:g_timeout_dispatch
   fun:g_main_context_dispatch
   fun:g_main_context_iterate
   fun:g_main_loop_run
   fun:tp_connection_run_until_ready
}

{
   dlopen initialization, triggered by handle-leak-debug code (5)
   Memcheck:Leak
   fun:calloc
   fun:_dl_new_object
   fun:_dl_map_object_from_fd
   fun:_dl_map_object
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
   fun:do_dlopen
   fun:_dl_catch_error
   fun:dlerror_run
   fun:__libc_dlopen_mode
   fun:init
   fun:backtrace
   fun:handle_leak_debug_bt
   fun:dynamic_ensure_handle
   fun:tp_handle_ensure
}

{
   dlopen initialization, triggered by handle-leak-debug code (6)
   Memcheck:Leak
   fun:calloc
   fun:_dl_check_map_versions
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
   fun:do_dlopen
   fun:_dl_catch_error
   fun:dlerror_run
   fun:__libc_dlopen_mode
   fun:init
   fun:backtrace
   fun:handle_leak_debug_bt
   fun:dynamic_ensure_handle
   fun:tp_handle_ensure
}

{
   ld.so initialization + selinux
   Memcheck:Leak
   fun:malloc
   obj:/lib/libselinux.so.*
   obj:/lib/libselinux.so.*
   obj:/lib/libselinux.so.*
   fun:call_init
   fun:_dl_init
   obj:/lib/ld-*.so
}

{
   ld.so initialization + selinux
   Memcheck:Leak
   fun:malloc
   fun:vasprintf
   fun:asprintf
   obj:/lib/libselinux.so.*
   obj:/lib/libselinux.so.*
   obj:/lib/libselinux.so.*
   fun:call_init
   fun:_dl_init
   obj:/lib/ld-*.so
}

{
   ld.so initialization + selinux
   Memcheck:Leak
   fun:realloc
   fun:vasprintf
   fun:asprintf
   obj:/lib/libselinux.so.*
   obj:/lib/libselinux.so.*
   obj:/lib/libselinux.so.*
   fun:call_init
   fun:_dl_init
   obj:/lib/ld-*.so
}

{
   ld.so initialization on glibc 2.9
   Memcheck:Cond
   fun:_dl_relocate_object
   fun:dl_main
   fun:_dl_sysdep_start
   fun:_dl_start
   obj:/lib/ld-2.9.so
}

{
   ld.so initialization on glibc 2.9
   Memcheck:Cond
   fun:strlen
   fun:_dl_init_paths
   fun:dl_main
   fun:_dl_sysdep_start
   fun:_dl_start
   obj:/lib/ld-2.9.so
}

{
   GTest initialization
   Memcheck:Leak
   ...
   fun:g_test_init
}

{
   g_random_int makes default GRand
   Memcheck:Leak
   ...
   fun:g_rand_new
   fun:g_random_int
}

{
   GTest logging
   Memcheck:Leak
   fun:malloc
   fun:realloc
   fun:g_realloc
   fun:g_array_maybe_expand
   fun:g_array_set_size
   fun:g_static_private_set
   fun:g_get_charset
   fun:g_print
   fun:g_test_log
   fun:g_test_run_suite_internal
   fun:g_test_run_suite_internal
   fun:g_test_run_suite
   fun:g_test_run
   fun:main
}

{
   dlopen initialization
   Memcheck:Leak
   fun:calloc
   fun:_dlerror_run
   fun:dlopen@@GLIBC_2.1
   fun:g_module_open
   fun:mcd_master_constructor
   fun:g_object_newv
   fun:g_object_new_valist
   fun:g_object_new
   fun:mcd_service_new
   fun:main
}

{
   more dlopen initialization
   Memcheck:Leak
   fun:malloc
   fun:add_to_global
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
   fun:dlopen_doit
   fun:_dl_catch_error
   fun:_dlerror_run
   fun:dlopen@@GLIBC_2.1
   fun:g_module_open
   fun:mcd_master_constructor
   fun:g_object_newv
   fun:g_object_new_valist
   fun:g_object_new
   fun:mcd_service_new
   fun:main
}
