Imported Upstream version 2.68.3
[platform/upstream/glib.git] / glib.supp
index 7354aea..2831663 100644 (file)
--- a/glib.supp
+++ b/glib.supp
@@ -22,6 +22,7 @@
 {
        gnutls-init-calloc
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:calloc
        ...
        fun:gtls_gnutls_init
@@ -30,6 +31,7 @@
 {
        gnutls-init-realloc
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:realloc
        ...
        fun:gtls_gnutls_init
@@ -38,6 +40,7 @@
 {
        g-tls-backend-gnutls-init
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:g_once_impl
        fun:g_tls_backend_gnutls_init
 }
@@ -45,6 +48,7 @@
 {
        p11-tokens-init
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:calloc
        ...
        fun:create_tokens_inlock
@@ -55,6 +59,7 @@
 {
        g-local-vfs-getpwnam
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:getpwnam
 {
        glib-init-malloc
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:g_quark_init
-       ...
-       fun:glib_init_ctor
 }
 
 {
        glib-init-calloc
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:calloc
        ...
        fun:g_quark_init
-       ...
-       fun:glib_init_ctor
 }
 
 {
        gobject-init-malloc
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
-       fun:gobject_init_ctor
+       fun:gobject_init*
 }
 
 {
        gobject-init-realloc
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:realloc
        ...
-       fun:gobject_init_ctor
+       fun:gobject_init*
 }
 
 {
        gobject-init-calloc
        Memcheck:Leak
+       match-leak-kinds:possible,reachable
        fun:calloc
        ...
-       fun:gobject_init_ctor
+       fun:gobject_init*
 }
 
 {
        g-type-register-dynamic
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:g_type_register_dynamic
 {
        g-type-register-static
        Memcheck:Leak
+       match-leak-kinds:possible,reachable
        fun:malloc
        ...
        fun:g_type_register_static
 {
        g-type-register-static-realloc
        Memcheck:Leak
+       match-leak-kinds:possible,reachable
        fun:realloc
        ...
        fun:g_type_register_static
 {
        g-type-register-static-calloc
        Memcheck:Leak
+       match-leak-kinds:possible,reachable
        fun:calloc
        ...
        fun:g_type_register_static
 }
 
 {
+       g-type-register-fundamental
+       Memcheck:Leak
+       match-leak-kinds:possible,reachable
+       fun:malloc
+       ...
+       fun:g_type_register_fundamental
+}
+
+{
+       g-type-register-fundamental-calloc
+       Memcheck:Leak
+       match-leak-kinds:possible,reachable
+       fun:calloc
+       ...
+       fun:g_type_register_fundamental
+}
+
+{
        g-type-add-interface-dynamic
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:g_type_add_interface_dynamic
 {
        g-type-add-interface-static
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:g_type_add_interface_static
 }
 
 {
+       g-type-add-interface-static-realloc
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:realloc
+       ...
+       fun:g_type_add_interface_static
+}
+
+{
+       g-type-add-interface-static-calloc
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:calloc
+       ...
+       fun:g_type_add_interface_static
+}
+
+{
        g-test-rand-init
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:calloc
        ...
        fun:g_rand_new_with_seed_array
 }
 
 {
-       g-test-rand-init2
+       g-rand-init2
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:calloc
        ...
        fun:g_rand_new_with_seed_array
        ...
        fun:get_global_random
-       ...
-       fun:g_test_init
 }
 
 {
        g-quark-table-new
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:g_hash_table_new
        ...
        fun:quark_new
 {
        g-quark-table-resize
        Memcheck:Leak
+       match-leak-kinds:reachable
+       ...
        fun:g_hash_table_resize
        ...
        fun:quark_new
 {
        g-type-interface-init
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:type_iface_vtable_base_init_Wm
 }
 
 {
+       g-type-class-init-calloc
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:calloc
+       ...
+       fun:type_class_init_Wm
+}
+
+{
        g-type-class-init
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:g_type_create_instance
        ...
        fun:type_class_init_Wm
 }
 
 {
+       g-object-do-class-init-signals
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       ...
+       fun:g_signal_new
+       ...
+       fun:type_class_init_Wm
+}
+
+{
+       g-type-prerequisites
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:realloc
+       ...
+       fun:type_iface_add_prerequisite_W
+}
+
+{
+       g-type-add-interface-check
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:malloc
+       ...
+       fun:g_type_add_interface_check
+       ...
+       fun:type_class_init_Wm
+}
+
+{
+       g-type-add-interface-check-realloc
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:realloc
+       ...
+       fun:g_type_add_interface_check
+       ...
+       fun:type_class_init_Wm
+}
+
+{
+       g-object-class-install-property
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:malloc
+       ...
+       fun:validate_and_install_class_property
+       ...
+       fun:type_class_init_Wm
+}
+
+{
+       g-param-spec-pool-new
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:malloc
+       ...
+       fun:g_param_spec_pool_new
+       ...
+       fun:type_class_init_Wm
+}
+
+# weak_locations_lock in gobject.c
+{
+       g-weak-ref-lock
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:malloc
+       ...
+       fun:g_rw_lock_get_impl
+       ...
+       fun:g_weak_ref_set
+}
+
+{
+       g-object-base-class-init-construct-pproperties
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:malloc
+       ...
+       fun:g_slist_copy
+       fun:g_object_base_class_init
+       fun:type_class_init_Wm
+}
+
+{
+        g-type-class-ref
+        Memcheck:Leak
+        fun:calloc
+        ...
+        fun:type_class_init_Wm
+        ...
+        fun:g_type_class_ref
+}
+
+{
+       g-type-class-ref-inlined
+       Memcheck:Leak
+       fun:calloc
+       ...
+       fun:UnknownInlinedFun
+       ...
+       fun:g_type_class_ref
+}
+
+{
        g-io-module-default-singleton-malloc
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:g_type_create_instance
 }
 
 {
+       g-io-module-default-singleton-calloc
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:calloc
+       ...
+       fun:g_type_create_instance
+       ...
+       fun:_g_io_module_get_default
+}
+
+# This one seems to show up sometimes with g_type_create_instance() at the top
+# of the stack, as well.
+{
+       g-io-module-default-singleton
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:g_type_create_instance
+       ...
+       fun:_g_io_module_get_default
+}
+
+{
        g-io-module-default-singleton-module
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:calloc
        ...
        fun:g_module_open
 {
        g-io-module-default-singleton-name
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:g_strdup
 }
 
 {
+       g-io-module-default-singleton-weak-ref
+       Memcheck:Leak
+       fun:calloc
+       ...
+       fun:_g_io_module_get_default
+}
+
+{
        g-get-language-names-malloc
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:g_get_language_names
 {
        g-get-language-names-calloc
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:calloc
        ...
        fun:g_get_language_names
 }
 
 {
+        g-get-language_names-with-category-malloc
+        Memcheck:Leak
+        match-leak-kinds:reachable
+        fun:malloc
+        ...
+        fun:g_get_language_names_with_category
+}
+
+{
+        g-get-language_names-with-category-calloc
+        Memcheck:Leak
+        match-leak-kinds:reachable
+        fun:calloc
+        ...
+        fun:g_get_language_names_with_category
+}
+
+{
+        g-get-language_names-with-category-realloc
+        Memcheck:Leak
+        match-leak-kinds:reachable
+        fun:realloc
+        ...
+        fun:g_get_language_names_with_category
+}
+
+{
        g-static-mutex
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:g_static_mutex_get_mutex_impl
 {
        g-system-thread-init
        Memcheck:Leak
+       match-leak-kinds:possible,reachable
        fun:calloc
        ...
        fun:g_system_thread_new
 }
 
 {
+       g-system-thread-init-malloc
+       Memcheck:Leak
+       match-leak-kinds:possible,reachable
+       fun:malloc
+       ...
+       fun:g_system_thread_new
+}
+
+{
+       g-task-thread-pool-init
+       Memcheck:Leak
+       match-leak-kinds:possible,reachable,definite
+       fun:malloc
+       ...
+       fun:g_thread_new
+       ...
+       fun:g_task_thread_pool_init
+}
+
+{
        g-io-module-default-proxy-resolver-gnome
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:calloc
        ...
        fun:g_proxy_resolver_gnome_init
 {
        g-threaded-resolver-getaddrinfo-config
        Memcheck:Leak
+       match-leak-kinds:reachable,definite
        fun:malloc
        ...
        fun:__resolv_conf_allocate
 # memcheck checks that the third argument to ioctl() is a valid pointer, but
 # some ioctls use that argument as an integer
 {
-   ioctl-with-non-pointer-param
-   Memcheck:Param
-   ioctl(generic)
-   fun:ioctl
-   fun:btrfs_reflink_with_progress
+       ioctl-with-non-pointer-param
+       Memcheck:Param
+       ioctl(generic)
+       fun:ioctl
+       fun:btrfs_reflink_with_progress
 }
 
 {
 }
 
 # g_set_user_dirs() deliberately leaks the previous cached g_get_user_*() values.
+# These will not all be reachable on exit.
 {
        g_set_user_dirs_str
        Memcheck:Leak
+       match-leak-kinds:definite,reachable
        fun:malloc
        ...
        fun:set_str_if_different
 }
 
 # g_set_user_dirs() deliberately leaks the previous cached g_get_user_*() values.
+# These will not all be reachable on exit.
 {
        g_set_user_dirs_strv
        Memcheck:Leak
+       match-leak-kinds:definite,reachable
        fun:malloc
        ...
        fun:set_strv_if_different
 {
        g_get_system_data_dirs
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:g_build_system_data_dirs
 {
        g_get_user_data_dir
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:realloc
        ...
        fun:g_build_user_data_dir
 {
        desktop_file_dirs_malloc
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:desktop_file_dirs_lock
 {
        desktop_file_dirs_realloc
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:realloc
        ...
        fun:desktop_file_dirs_lock
 {
        desktop_file_dir_unindexed_setup_search
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:desktop_file_dir_unindexed_setup_search
 {
        g_io_extension_point_register
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:calloc
        ...
        fun:g_io_extension_point_register
 {
        g_strerror
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:g_locale_to_utf8
 {
        g_socket_connection_factory_register_type
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:calloc
        ...
        fun:g_socket_connection_factory_register_type
 {
        g_dbus_error_quark
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:calloc
        ...
        fun:g_dbus_error_register_error_domain
        fun:g_dbus_error_quark
 }
 
+# g_win32_registry_get_os_dirs_w*() caches an array of strings that is allocated only once.
+{
+       g_win32_registry_get_os_dirs
+       Memcheck:Leak
+       match-leak-kinds:reachable,definite
+       fun:malloc
+       ...
+       fun:g_win32_registry_get_os_dirs*
+}
+
 # Thread-private data allocated once per thread
 {
        g_private_set_alloc0
        Memcheck:Leak
+       match-leak-kinds:definite,reachable
        fun:malloc
        ...
        fun:g_private_set_alloc0
 }
+{
+       g_private_set_alloc0-calloc
+       Memcheck:Leak
+       match-leak-kinds:definite,reachable
+       fun:calloc
+       ...
+       fun:g_private_set_alloc0
+}
+
+# Keys for thread-private data
+{
+       g_private_key
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:malloc
+       fun:g_private_impl_new
+}
 
 # Thread-private GMainContext stack
 {
        g_main_context_push_thread_default
        Memcheck:Leak
+       match-leak-kinds:definite,reachable
        fun:malloc
        ...
        fun:g_queue_new
 {
        g_file_info_attribute_cache
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:ensure_attribute_hash
 {
        g_file_info_attribute_cache2
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:calloc
        ...
        fun:ensure_attribute_hash
 {
        g_file_info_attribute_cache3
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:malloc
        ...
        fun:lookup_namespace
 {
        g_file_info_attribute_cache4
        Memcheck:Leak
+       match-leak-kinds:reachable
        fun:calloc
        ...
        fun:lookup_namespace
        ...
        fun:g_file_*
-}
\ No newline at end of file
+}
+
+# Cached charset
+{
+       g_get_charset
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:malloc
+       ...
+       fun:g_get_charset
+}
+
+{
+       g_get_charset_calloc
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:calloc
+       ...
+       fun:g_get_charset
+}
+
+# Global unused thread queue
+{
+       g_thread_pool_unused_thread_queue
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:malloc
+       ...
+       fun:g_async_queue_new_full
+       ...
+       fun:g_thread_pool_new
+}
+
+# One-time program name storage
+{
+       g_set_prgname
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:malloc
+       ...
+       fun:g_set_prgname
+}
+
+# Error domains hash
+{
+       g_error_init
+       Memcheck:Leak
+       match-leak-kinds: reachable
+       fun:malloc
+       ...
+       fun:g_hash_table_new_full
+       fun:g_error_init
+}
+
+# Error domain static registration
+{
+       g_error_domain_register_static
+       Memcheck:Leak
+       match-leak-kinds: reachable
+       fun:malloc
+       ...
+       fun:g_hash_table_insert
+       fun:error_domain_register
+       fun:g_error_domain_register_static
+}
+
+{
+       new_quark
+       Memcheck:Leak
+       match-leak-kinds:reachable
+       fun:malloc
+       ...
+       fun:g_hash_table_insert
+       fun:quark_new
+}