| # GLib Valgrind suppressions file |
| # |
| # This provides a list of suppressions for all of GLib (including GIO), for all |
| # Valgrind tools (memcheck, drd, helgrind, etc.) for the false positives and |
| # deliberate one-time leaks which GLib causes to be reported when running under |
| # Valgrind. |
| # |
| # When running an application which links to GLib under Valgrind, you can pass |
| # this suppression file to Valgrind using --suppressions=/path/to/glib-2.0.supp. |
| # |
| # http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress |
| # |
| # Note that there is currently no way for Valgrind to load this automatically |
| # (https://bugs.kde.org/show_bug.cgi?id=160905), so the best GLib can currently |
| # do is to install this file as part of its development package. |
| # |
| # This file should be updated if GLib introduces a new deliberate one-time leak, |
| # or another false race positive in Valgrind: please file bugs at: |
| # |
| # https://gitlab.gnome.org/GNOME/glib/issues/new |
| |
| { |
| gnutls-init-calloc |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:calloc |
| ... |
| fun:gtls_gnutls_init |
| } |
| |
| { |
| gnutls-init-realloc |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:realloc |
| ... |
| fun:gtls_gnutls_init |
| } |
| |
| { |
| g-tls-backend-gnutls-init |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:g_once_impl |
| fun:g_tls_backend_gnutls_init |
| } |
| |
| { |
| p11-tokens-init |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:calloc |
| ... |
| fun:create_tokens_inlock |
| fun:initialize_module_inlock_reentrant |
| } |
| |
| # One-time allocation from libc for getpwnam() results |
| { |
| g-local-vfs-getpwnam |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:malloc |
| ... |
| fun:getpwnam |
| fun:g_local_vfs_parse_name |
| } |
| |
| { |
| glib-init-malloc |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:malloc |
| ... |
| fun:g_quark_init |
| } |
| |
| { |
| glib-init-calloc |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:calloc |
| ... |
| fun:g_quark_init |
| } |
| |
| { |
| gobject-init-malloc |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:malloc |
| ... |
| fun:gobject_init* |
| } |
| |
| { |
| gobject-init-realloc |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:realloc |
| ... |
| fun:gobject_init* |
| } |
| |
| { |
| gobject-init-calloc |
| Memcheck:Leak |
| match-leak-kinds:possible,reachable |
| fun:calloc |
| ... |
| 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 |
| fun:test_run_seed |
| ... |
| fun:g_test_run |
| } |
| |
| { |
| g-rand-init2 |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:calloc |
| ... |
| fun:g_rand_new_with_seed_array |
| ... |
| fun:get_global_random |
| } |
| |
| { |
| 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 |
| ... |
| fun:_g_io_module_get_default |
| } |
| |
| { |
| 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 |
| ... |
| fun:_g_io_module_get_default |
| } |
| |
| { |
| g-io-module-default-singleton-name |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:malloc |
| ... |
| fun:g_strdup |
| ... |
| fun:_g_io_module_get_default* |
| } |
| |
| { |
| 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 |
| ... |
| fun:_g_io_module_get_default |
| } |
| |
| # One-time getaddrinfo() configuration loading |
| { |
| g-threaded-resolver-getaddrinfo-config |
| Memcheck:Leak |
| match-leak-kinds:reachable,definite |
| fun:malloc |
| ... |
| fun:__resolv_conf_allocate |
| ... |
| fun:getaddrinfo |
| fun:do_lookup_by_name |
| } |
| |
| # 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 |
| } |
| |
| { |
| g-private-get |
| drd:ConflictingAccess |
| fun:g_private_get |
| } |
| { |
| g-private-get-helgrind |
| Helgrind:Race |
| fun:g_private_get |
| } |
| |
| |
| { |
| g-private-set |
| drd:ConflictingAccess |
| fun:g_private_set |
| } |
| { |
| g-private-set-helgrind |
| Helgrind:Race |
| fun:g_private_set |
| } |
| |
| { |
| g-type-construct-free |
| drd:ConflictingAccess |
| fun:g_type_free_instance |
| } |
| { |
| g-type-construct-free-helgrind |
| Helgrind:Race |
| fun:g_type_free_instance |
| } |
| |
| { |
| g-variant-unref |
| drd:ConflictingAccess |
| fun:g_variant_unref |
| } |
| { |
| g-variant-unref-helgrind |
| Helgrind:Race |
| fun:g_variant_unref |
| } |
| |
| { |
| g-unix-signals-main |
| drd:ConflictingAccess |
| fun:_g_main_create_unix_signal_watch |
| } |
| { |
| g-unix-signals-dispatch |
| drd:ConflictingAccess |
| ... |
| fun:dispatch_unix_signals* |
| } |
| { |
| g-unix-signals-dispatch-helgrind |
| Helgrind:Race |
| ... |
| fun:dispatch_unix_signals* |
| } |
| { |
| g-unix-signals-other |
| drd:ConflictingAccess |
| fun:g_unix_signal_watch* |
| } |
| { |
| g-unix-signals-other-helgrind |
| Helgrind:Race |
| fun:g_unix_signal_watch* |
| } |
| { |
| g-unix-signals-handler |
| drd:ConflictingAccess |
| fun:g_unix_signal_handler* |
| } |
| { |
| g-unix-signals-handler-helgrind |
| Helgrind:Race |
| fun:g_unix_signal_handler* |
| } |
| { |
| g-unix-signals-worker |
| drd:ConflictingAccess |
| fun:glib_worker_main |
| } |
| { |
| g-unix-signals-worker-helgrind |
| Helgrind:Race |
| fun:glib_worker_main |
| } |
| |
| { |
| g-wakeup-acknowledge |
| drd:ConflictingAccess |
| fun:read |
| fun:g_wakeup_acknowledge |
| } |
| |
| { |
| g-type-fundamental |
| drd:ConflictingAccess |
| fun:g_type_fundamental |
| } |
| { |
| g-type-fundamental-helgrind |
| Helgrind:Race |
| fun:g_type_fundamental |
| } |
| { |
| g-type-class-peek-static |
| drd:ConflictingAccess |
| fun:g_type_class_peek_static |
| } |
| { |
| g-type-class-peek-static-helgrind |
| Helgrind:Race |
| fun:g_type_class_peek_static |
| } |
| { |
| g-type-is-a |
| drd:ConflictingAccess |
| ... |
| fun:g_type_is_a |
| } |
| { |
| g-type-is-a-helgrind |
| Helgrind:Race |
| ... |
| fun:g_type_is_a |
| } |
| |
| { |
| g-inet-address-get-type |
| drd:ConflictingAccess |
| fun:g_inet_address_get_type |
| } |
| { |
| g-inet-address-get-type-helgrind |
| Helgrind:Race |
| fun:g_inet_address_get_type |
| } |
| |
| # From: https://github.com/fredericgermain/valgrind/blob/HEAD/glibc-2.X-drd.supp |
| { |
| drd-libc-stdio |
| drd:ConflictingAccess |
| obj:*/lib*/libc-* |
| } |
| { |
| drd-libc-recv |
| drd:ConflictingAccess |
| fun:recv |
| } |
| { |
| drd-libc-send |
| drd:ConflictingAccess |
| fun:send |
| } |
| |
| # GSources do an opportunistic ref count check |
| { |
| g-source-set-ready-time |
| drd:ConflictingAccess |
| fun:g_source_set_ready_time |
| } |
| { |
| g-source-set-ready-time-helgrind |
| Helgrind:Race |
| fun:g_source_set_ready_time |
| } |
| |
| { |
| g-source-iter-next |
| Helgrind:Race |
| fun:g_source_iter_next |
| fun:g_main_context_* |
| fun:g_main_context_iterate |
| } |
| |
| { |
| g-object-instance-private |
| drd:ConflictingAccess |
| fun:*_get_instance_private |
| } |
| { |
| g-object-instance-private-helgrind |
| Helgrind:Race |
| fun:*_get_instance_private |
| } |
| |
| # GLib legitimately calls pthread_cond_signal without a mutex held |
| { |
| g-task-thread-complete |
| drd:CondErr |
| ... |
| fun:g_cond_signal |
| fun:g_task_thread_complete |
| } |
| { |
| g-task-thread-complete |
| Helgrind:Misc |
| ... |
| fun:g_cond_signal |
| fun:g_task_thread_complete |
| } |
| |
| # False positive, but I can't explain how (FIXME) |
| { |
| g-task-cond |
| Helgrind:Misc |
| ... |
| fun:g_cond_clear |
| fun:g_task_finalize |
| } |
| |
| # Real race, but is_cancelled() is an opportunistic function anyway |
| { |
| g-cancellable-is-cancelled |
| Helgrind:Race |
| fun:g_cancellable_is_cancelled |
| } |
| |
| # False positive |
| { |
| g-main-context-cond |
| Helgrind:Misc |
| ... |
| fun:g_cond_clear |
| fun:g_main_context_unref |
| } |
| |
| # False positives |
| { |
| g-source-unlocked |
| Helgrind:Race |
| fun:g_source_*_unlocked |
| } |
| { |
| g-source-internal |
| Helgrind:Race |
| fun:g_source_*_internal |
| } |
| |
| # False positive |
| { |
| g_object_real_dispose |
| Helgrind:Race |
| fun:g_object_real_dispose |
| } |
| |
| # False positive |
| { |
| g_object_new_valist |
| Helgrind:Race |
| ... |
| fun:g_object_new_valist |
| } |
| |
| # 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 |
| fun:g_set_user_dirs |
| } |
| |
| # 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 |
| fun:g_set_user_dirs |
| } |
| |
| # g_get_system_data_dirs() caches a one-time allocation |
| { |
| g_get_system_data_dirs |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:malloc |
| ... |
| fun:g_build_system_data_dirs |
| fun:g_get_system_data_dirs |
| } |
| |
| # g_get_user_data_dir() caches a one-time allocation |
| { |
| g_get_user_data_dir |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:realloc |
| ... |
| fun:g_build_user_data_dir |
| fun:g_get_user_data_dir |
| } |
| |
| # gdesktopappinfo.c caches a one-time allocation global table of @desktop_file_dirs. |
| { |
| desktop_file_dirs_malloc |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:malloc |
| ... |
| fun:desktop_file_dirs_lock |
| } |
| |
| # gdesktopappinfo.c caches a one-time allocation global table of @desktop_file_dirs. |
| { |
| desktop_file_dirs_realloc |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:realloc |
| ... |
| fun:desktop_file_dirs_lock |
| } |
| |
| # gdesktopappinfo.c caches a one-time allocation global table of @desktop_file_dirs. |
| { |
| desktop_file_dir_unindexed_setup_search |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:malloc |
| ... |
| fun:desktop_file_dir_unindexed_setup_search |
| fun:desktop_file_dir_unindexed_setup_search |
| } |
| |
| # g_io_extension_point_register() caches a one-time allocation global table of @extension_points. |
| { |
| g_io_extension_point_register |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:calloc |
| ... |
| fun:g_io_extension_point_register |
| } |
| |
| # g_strerror() caches a one-time allocation global table of @errors. |
| { |
| g_strerror |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:malloc |
| ... |
| fun:g_locale_to_utf8 |
| fun:g_strerror |
| } |
| |
| # g_socket_connection_factory_register_type() caches a one-time allocation global table of @connection_types. |
| { |
| 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() never unregisters itself as a GDBusError domain, as it’s always available |
| { |
| 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 |
| fun:g_main_context_push_thread_default |
| } |
| |
| # One-time allocations for #GFileInfo attribute cache |
| { |
| g_file_info_attribute_cache |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:malloc |
| ... |
| fun:ensure_attribute_hash |
| ... |
| fun:g_file_* |
| } |
| { |
| g_file_info_attribute_cache2 |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:calloc |
| ... |
| fun:ensure_attribute_hash |
| ... |
| fun:g_file_* |
| } |
| { |
| g_file_info_attribute_cache3 |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:malloc |
| ... |
| fun:lookup_namespace |
| ... |
| fun:g_file_* |
| } |
| { |
| g_file_info_attribute_cache4 |
| Memcheck:Leak |
| match-leak-kinds:reachable |
| fun:calloc |
| ... |
| fun:lookup_namespace |
| ... |
| fun:g_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 |
| } |