1
0
Fork 0
profanity/prof.supp

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

2424 lines
38 KiB
Plaintext
Raw Normal View History

# profanity suppressions file
#
# I recommend to use valgrind like this:
# G_DEBUG=gc-friendly G_SLICE=always-malloc valgrind --leak-check=full --log-file=out ./profanity
#
# This file is a combination of our own rules and
# * the glib2 suppressions file that usually can be found at /usr/share/glib-2.0/valgrind/glib.supp
# * python suppressions file from http://svn.python.org/projects/python/trunk/Misc/valgrind-python.supp
#
2014-06-15 16:18:34 +00:00
{
_dl_init
Memcheck:Leak
...
fun:_dl_init
...
}
2014-06-15 16:32:30 +00:00
{
gtk_init_check
Memcheck:Leak
...
fun:gtk_init_check
...
}
2015-08-11 00:00:23 +00:00
# glib
2014-06-17 21:01:01 +00:00
{
2015-08-11 00:00:23 +00:00
glib
2014-06-17 21:01:01 +00:00
Memcheck:Leak
...
2015-08-11 00:00:23 +00:00
fun:start_thread
fun:clone
2014-06-17 21:01:01 +00:00
}
# gcrypt initialization
{
gcry_rngcsprng_randomize
Memcheck:Leak
fun:malloc
...
fun:omemo_crypto_init
...
}
# 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:possible,reachable,definite
fun:malloc
...
fun:g_get_language_names_with_category
}
{
g-get-language_names-with-category-calloc
Memcheck:Leak
match-leak-kinds:possible,reachable,definite
fun:calloc
...
fun:g_get_language_names_with_category
}
{
g-get-language_names-with-category-realloc
Memcheck:Leak
match-leak-kinds:possible,reachable,definite
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,definite
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-task-thread-pool-new-full
Memcheck:Leak
match-leak-kinds:possible,reachable,definite
fun:malloc
...
fun:g_thread_new
...
fun:g_thread_pool_new_full
}
{
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_unset_cached_tmp_dir() deliberately leaks the previous cached g_get_tmp_dir() values.
# These will not all be reachable on exit.
{
g_get_tmp_dir_test_init
Memcheck:Leak
match-leak-kinds:definite,reachable
fun:malloc
...
fun:g_get_tmp_dir
...
fun:g_test_init
}
# g_get_tmp_dir() caches a one-time allocation
{
g_get_tmp_dir
Memcheck:Leak
match-leak-kinds:definite,reachable
fun:malloc
...
fun:g_get_tmp_dir
}
# 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
}
# g_get_home_dir() caches a one-time allocation
{
g_get_home_dir
Memcheck:Leak
match-leak-kinds:reachable
fun:malloc
...
fun:g_build_home_dir
fun:g_get_home_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
}
#gutils.c caches system and user dirs and may need to replace them during tests.
{
g_build_user_data_dir
Memcheck:Leak
match-leak-kinds:definite
fun:malloc
...
fun:g_build_user_data_dir
}
#gutils.c caches system and user dirs and may need to replace them during tests.
{
g_build_filename
Memcheck:Leak
match-leak-kinds:definite
fun:malloc
...
fun:g_build_filename
}
#gutils.c caches system and user dirs and may need to replace them during tests.
{
g_build_home_dir
Memcheck:Leak
match-leak-kinds:definite
fun:malloc
...
fun:g_build_home_dir
}
#gutils.c caches system and user dirs and may need to replace them during tests.
{
g_build_path
Memcheck:Leak
match-leak-kinds:definite
fun:malloc
...
fun:g_build_path
}
#gutils.c caches system and user dirs and may need to replace them during tests.
{
g_build_system_config_dirs
Memcheck:Leak
match-leak-kinds:definite
fun:realloc
...
fun:g_build_system_config_dirs
}
#gutils.c caches system and user dirs and may need to replace them during tests.
{
g_build_system_data_dir
Memcheck:Leak
match-leak-kinds:definite
fun:malloc
...
fun:g_build_system_data_dir
}
#gutils.c caches system and user dirs and may need to replace them during tests.
{
g_build_system_data_dirs
Memcheck:Leak
match-leak-kinds:definite
fun:realloc
...
fun:g_build_system_data_dirs
}
#gutils.c caches system and user dirs and may need to replace them during tests.
{
g_build_user_cache_dir
Memcheck:Leak
match-leak-kinds:definite
fun:malloc
...
fun:g_build_user_cache_dir
}
#gutils.c caches system and user dirs and may need to replace them during tests.
{
g_build_user_config_dir
Memcheck:Leak
match-leak-kinds:definite
fun:malloc
...
fun:g_build_user_config_dir
}
#gutils.c caches system and user dirs and may need to replace them during tests.
{
g_build_user_data_dir
Memcheck:Leak
match-leak-kinds:definite
fun:malloc
...
fun:g_build_user_data_dir
}
#gutils.c caches system and user dirs and may need to replace them during tests.
{
g_build_user_runtime_dir
Memcheck:Leak
match-leak-kinds:definite
fun:malloc
...
fun:g_build_user_runtime_dir
}
#gutils.c caches system and user dirs and may need to replace them during tests.
{
g_build_user_state_dir
Memcheck:Leak
match-leak-kinds:definite
fun:malloc
...
fun:g_build_user_state_dir
}
# 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 its 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
}
{
xdg_mime_init_malloc
Memcheck:Leak
fun:malloc
...
fun:xdg_mime_init
}
{
xdg_mime_init_calloc
Memcheck:Leak
fun:calloc
...
fun:xdg_mime_init
}
#
# This is a valgrind suppression file that should be used when using valgrind.
#
# Here's an example of running valgrind:
#
# cd python/dist/src
# valgrind --tool=memcheck --suppressions=Misc/valgrind-python.supp \
# ./python -E ./Lib/test/regrtest.py -u gui,network
#
# You must edit Objects/obmalloc.c and uncomment Py_USING_MEMORY_DEBUGGER
# to use the preferred suppressions with address_in_range.
#
# If you do not want to recompile Python, you can uncomment
# suppressions for _PyObject_Free and _PyObject_Realloc.
#
# See Misc/README.valgrind for more information.
# all tool names: Addrcheck,Memcheck,cachegrind,helgrind,massif
{
ADDRESS_IN_RANGE/Invalid read of size 4
Memcheck:Addr4
fun:address_in_range
}
{
ADDRESS_IN_RANGE/Invalid read of size 4
Memcheck:Value4
fun:address_in_range
}
{
ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64 aka amd64)
Memcheck:Value8
fun:address_in_range
}
{
ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
Memcheck:Cond
fun:address_in_range
}
#
# Leaks (including possible leaks)
# Hmmm, I wonder if this masks some real leaks. I think it does.
# Will need to fix that.
#
{
Suppress leaking the GIL after a fork.
Memcheck:Leak
fun:malloc
fun:PyThread_allocate_lock
fun:PyEval_ReInitThreads
}
{
Suppress leaking the autoTLSkey. This looks like it shouldn't leak though.
Memcheck:Leak
fun:malloc
fun:PyThread_create_key
fun:_PyGILState_Init
fun:Py_InitializeEx
fun:Py_Main
}
{
Hmmm, is this a real leak or like the GIL?
Memcheck:Leak
fun:malloc
fun:PyThread_ReInitTLS
}
{
Handle PyMalloc confusing valgrind (possibly leaked)
Memcheck:Leak
fun:realloc
fun:_PyObject_GC_Resize
fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING
}
{
Handle PyMalloc confusing valgrind (possibly leaked)
Memcheck:Leak
fun:malloc
fun:_PyObject_GC_New
fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING
}
{
Handle PyMalloc confusing valgrind (possibly leaked)
Memcheck:Leak
fun:malloc
fun:_PyObject_GC_NewVar
fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING
}
#
# Non-python specific leaks
#
{
Handle pthread issue (possibly leaked)
Memcheck:Leak
fun:calloc
fun:allocate_dtv
fun:_dl_allocate_tls_storage
fun:_dl_allocate_tls
}
{
Handle pthread issue (possibly leaked)
Memcheck:Leak
fun:memalign
fun:_dl_allocate_tls_storage
fun:_dl_allocate_tls
}
###{
### ADDRESS_IN_RANGE/Invalid read of size 4
### Memcheck:Addr4
### fun:_PyObject_Free
###}
###
###{
### ADDRESS_IN_RANGE/Invalid read of size 4
### Memcheck:Value4
### fun:_PyObject_Free
###}
###
###{
### ADDRESS_IN_RANGE/Use of uninitialised value of size 8
### Memcheck:Addr8
### fun:_PyObject_Free
###}
###
###{
### ADDRESS_IN_RANGE/Use of uninitialised value of size 8
### Memcheck:Value8
### fun:_PyObject_Free
###}
###
###{
### ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
### Memcheck:Cond
### fun:_PyObject_Free
###}
###{
### ADDRESS_IN_RANGE/Invalid read of size 4
### Memcheck:Addr4
### fun:_PyObject_Realloc
###}
###
###{
### ADDRESS_IN_RANGE/Invalid read of size 4
### Memcheck:Value4
### fun:_PyObject_Realloc
###}
###
###{
### ADDRESS_IN_RANGE/Use of uninitialised value of size 8
### Memcheck:Addr8
### fun:_PyObject_Realloc
###}
###
###{
### ADDRESS_IN_RANGE/Use of uninitialised value of size 8
### Memcheck:Value8
### fun:_PyObject_Realloc
###}
###
###{
### ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
### Memcheck:Cond
### fun:_PyObject_Realloc
###}
###
### All the suppressions below are for errors that occur within libraries
### that Python uses. The problems to not appear to be related to Python's
### use of the libraries.
###
{
Generic ubuntu ld problems
Memcheck:Addr8
obj:/lib/ld-2.4.so
obj:/lib/ld-2.4.so
obj:/lib/ld-2.4.so
obj:/lib/ld-2.4.so
}
{
Generic gentoo ld problems
Memcheck:Cond
obj:/lib/ld-2.3.4.so
obj:/lib/ld-2.3.4.so
obj:/lib/ld-2.3.4.so
obj:/lib/ld-2.3.4.so
}
{
DBM problems, see test_dbm
Memcheck:Param
write(buf)
fun:write
obj:/usr/lib/libdb1.so.2
obj:/usr/lib/libdb1.so.2
obj:/usr/lib/libdb1.so.2
obj:/usr/lib/libdb1.so.2
fun:dbm_close
}
{
DBM problems, see test_dbm
Memcheck:Value8
fun:memmove
obj:/usr/lib/libdb1.so.2
obj:/usr/lib/libdb1.so.2
obj:/usr/lib/libdb1.so.2
obj:/usr/lib/libdb1.so.2
fun:dbm_store
fun:dbm_ass_sub
}
{
DBM problems, see test_dbm
Memcheck:Cond
obj:/usr/lib/libdb1.so.2
obj:/usr/lib/libdb1.so.2
obj:/usr/lib/libdb1.so.2
fun:dbm_store
fun:dbm_ass_sub
}
{
DBM problems, see test_dbm
Memcheck:Cond
fun:memmove
obj:/usr/lib/libdb1.so.2
obj:/usr/lib/libdb1.so.2
obj:/usr/lib/libdb1.so.2
obj:/usr/lib/libdb1.so.2
fun:dbm_store
fun:dbm_ass_sub
}
{
GDBM problems, see test_gdbm
Memcheck:Param
write(buf)
fun:write
fun:gdbm_open
}
{
Uninitialised byte(s) false alarm, see bpo-35561
Memcheck:Param
epoll_ctl(event)
fun:epoll_ctl
fun:pyepoll_internal_ctl
}
{
ZLIB problems, see test_gzip
Memcheck:Cond
obj:/lib/libz.so.1.2.3
obj:/lib/libz.so.1.2.3
fun:deflate
}
{
Avoid problems w/readline doing a putenv and leaking on exit
Memcheck:Leak
fun:malloc
fun:xmalloc
fun:sh_set_lines_and_columns
fun:_rl_get_screen_size
fun:_rl_init_terminal_io
obj:/lib/libreadline.so.4.3
fun:rl_initialize
}
# Valgrind emits "Conditional jump or move depends on uninitialised value(s)"
# false alarms on GCC builtin strcmp() function. The GCC code is correct.
#
# Valgrind bug: https://bugs.kde.org/show_bug.cgi?id=264936
{
bpo-38118: Valgrind emits false alarm on GCC builtin strcmp()
Memcheck:Cond
fun:PyUnicode_Decode
}
###
### These occur from somewhere within the SSL, when running
### test_socket_sll. They are too general to leave on by default.
###
###{
### somewhere in SSL stuff
### Memcheck:Cond
### fun:memset
###}
###{
### somewhere in SSL stuff
### Memcheck:Value4
### fun:memset
###}
###
###{
### somewhere in SSL stuff
### Memcheck:Cond
### fun:MD5_Update
###}
###
###{
### somewhere in SSL stuff
### Memcheck:Value4
### fun:MD5_Update
###}
# Fedora's package "openssl-1.0.1-0.1.beta2.fc17.x86_64" on x86_64
# See http://bugs.python.org/issue14171
{
openssl 1.0.1 prng 1
Memcheck:Cond
fun:bcmp
fun:fips_get_entropy
fun:FIPS_drbg_instantiate
fun:RAND_init_fips
fun:OPENSSL_init_library
fun:SSL_library_init
fun:init_hashlib
}
{
openssl 1.0.1 prng 2
Memcheck:Cond
fun:fips_get_entropy
fun:FIPS_drbg_instantiate
fun:RAND_init_fips
fun:OPENSSL_init_library
fun:SSL_library_init
fun:init_hashlib
}
{
openssl 1.0.1 prng 3
Memcheck:Value8
fun:_x86_64_AES_encrypt_compact
fun:AES_encrypt
}
#
# All of these problems come from using test_socket_ssl
#
{
from test_socket_ssl
Memcheck:Cond
fun:BN_bin2bn
}
{
from test_socket_ssl
Memcheck:Cond
fun:BN_num_bits_word
}
{
from test_socket_ssl
Memcheck:Value4
fun:BN_num_bits_word
}
{
from test_socket_ssl
Memcheck:Cond
fun:BN_mod_exp_mont_word
}
{
from test_socket_ssl
Memcheck:Cond
fun:BN_mod_exp_mont
}
{
from test_socket_ssl
Memcheck:Param
write(buf)
fun:write
obj:/usr/lib/libcrypto.so.0.9.7
}
{
from test_socket_ssl
Memcheck:Cond
fun:RSA_verify
}
{
from test_socket_ssl
Memcheck:Value4
fun:RSA_verify
}
{
from test_socket_ssl
Memcheck:Value4
fun:DES_set_key_unchecked
}
{
from test_socket_ssl
Memcheck:Value4
fun:DES_encrypt2
}
{
from test_socket_ssl
Memcheck:Cond
obj:/usr/lib/libssl.so.0.9.7
}
{
from test_socket_ssl
Memcheck:Value4
obj:/usr/lib/libssl.so.0.9.7
}
{
from test_socket_ssl
Memcheck:Cond
fun:BUF_MEM_grow_clean
}
{
from test_socket_ssl
Memcheck:Cond
fun:memcpy
fun:ssl3_read_bytes
}
{
from test_socket_ssl
Memcheck:Cond
fun:SHA1_Update
}
{
from test_socket_ssl
Memcheck:Value4
fun:SHA1_Update
}
{
test_buffer_non_debug
Memcheck:Addr4
fun:PyUnicodeUCS2_FSConverter
}
2019-07-11 15:31:03 +00:00
{
test_buffer_non_debug
Memcheck:Addr4
fun:PyUnicode_FSConverter
}
{
wcscmp_false_positive
Memcheck:Addr8
fun:wcscmp
fun:_PyOS_GetOpt
fun:Py_Main
fun:main
}
# Additional suppressions for the unified decimal tests:
{
test_decimal
Memcheck:Addr4
fun:PyUnicodeUCS2_FSConverter
}
{
test_decimal2
Memcheck:Addr4
fun:PyUnicode_FSConverter
}
# Actual GTK things
{
GtkWidgetClass action GPtrArray
2019-07-11 15:31:03 +00:00
Memcheck:Leak
fun:malloc
fun:g_malloc
fun:g_slice_alloc
fun:g_ptr_array_sized_new
fun:g_ptr_array_new
fun:gtk_widget_class_add_action
}
{
GTK media extension gio modules
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
fun:g_slice_alloc
fun:g_slice_alloc0
fun:g_type_create_instance
fun:g_object_new_internal
fun:g_object_new_with_properties
fun:g_object_new
fun:g_io_module_new
fun:g_io_modules_scan_all_in_directory_with_scope
fun:gtk_media_file_extension_init
}
{
gtk-style-context
Memcheck:Leak
match-leak-kinds: possible
fun:malloc
fun:g_malloc
...
fun:gtk_css_node_declaration_make_writable
...
fun:gtk_style_constructed
}
{
gtk-style-context2
Memcheck:Leak
match-leak-kinds: possible
fun:malloc
fun:g_malloc
...
fun:gtk_css_node_declaration_make_writable_resize
...
fun:gtk_style_constructed
}
# AMD driver
{
radeonsi_dri general
Memcheck:Leak
fun:calloc
2019-07-11 15:31:03 +00:00
...
obj:/usr/lib*/dri/radeonsi_dri.so
}
# mesa driver stuff
{
i965 addr4
Memcheck:Addr4
obj:/usr/lib*/dri/i965_dri.so*
}
{
i965 addr8
Memcheck:Addr8
obj:/usr/lib*/dri/i965_dri.so*
}
{
i965 memcpy
Memcheck:Addr8
fun:memcpy*
obj:/usr/lib*/dri/i965_dri.so*
}
{
i965 memcpy
Memcheck:Addr2
fun:memcpy*
obj:/usr/lib*/dri/i965_dri.so*
}
{
mesa memcmp 8
Memcheck:Addr8
fun:*memcmp*
obj:/usr/lib*/dri/i965_dri.so*
}
{
mesa memcmp 1
Memcheck:Addr1
fun:*memcmp*
obj:/usr/lib*/dri/i965_dri.so*
}
{
mesa memset 8
Memcheck:Addr8
fun:*memset*
obj:/usr/lib*/dri/i965_dri.so
}
{
mesa realpath
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:realpath@@GLIBC_2.3
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
fun:epoxy_eglInitialize_global_rewrite_ptr
}
{
mesa calloc
Memcheck:Leak
match-leak-kinds: definite
fun:calloc
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
fun:epoxy_eglInitialize_global_rewrite_ptr
}
{
mesa malloc
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
obj:/usr/lib*/dri/i965_dri.so*
}
{
mesa glReadPixels
Memcheck:Addr16
obj:*
obj:*
obj:*
obj:*
obj:*
fun:epoxy_glReadPixels_global_rewrite_ptr
}
{
epoxy glxQueryServerString 1
Memcheck:Leak
fun:malloc
fun:XextAddDisplay
obj:*
obj:*
obj:*
obj:*
obj:*
fun:epoxy_glXQueryServerString_global_rewrite_ptr
}
{
epoxy glxQueryServerString 2
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:realpath*
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
fun:epoxy_glXQueryServerString_global_rewrite_ptr
}
{
epoxy glGetTexImage
Memcheck:Addr16
obj:*
obj:*
obj:*
obj:*
obj:*
fun:epoxy_glGetTexImage_global_rewrite_ptr
}
# Fontconfig
{
FcFontSetList
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
obj:/usr/lib*/libfontconfig.so*
obj:/usr/lib*/libfontconfig.so*
fun:FcFontSetList
}
{
FcFontRenderPrepare
Memcheck:Leak
match-leak-kinds: definite
fun:realloc
obj:/usr/lib*/libfontconfig.so*
obj:/usr/lib*/libfontconfig.so*
fun:FcFontRenderPrepare
}
{
FcDefaultSubstitute
Memcheck:Leak
match-leak-kinds: definite
fun:realloc
obj:/usr/lib*/libfontconfig.so*
obj:/usr/lib*/libfontconfig.so*
fun:FcDefaultSubstitute
}
# Pixman
{
pixman_image_composite32
Memcheck:Cond
obj:/usr/lib*/libpixman-1.so*
obj:/usr/lib*/libpixman-1.so*
fun:pixman_image_composite32
}
# Pango
{
pango 1
Memcheck:Leak
match-leak-kinds: definite
fun:realloc
obj:/usr/lib*/libfontconfig.so*
obj:/usr/lib*/libfontconfig.so*
obj:/usr/lib*/libcairo.so*
fun:pango_cairo_fc_font_map_fontset_key_substitute
}
{
pango 2
Memcheck:Leak
fun:realloc
obj:/usr/lib*/libfontconfig.so*
obj:/usr/lib*/libfontconfig.so*
fun:_cairo_ft_font_options_substitute
}
# GLib
{
glib 1
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
fun:g_quark_init
}
# Actual GTK things
{
GtkWidgetClass action GPtrArray
Memcheck:Leak
fun:malloc
fun:g_malloc
fun:g_slice_alloc
fun:g_ptr_array_sized_new
fun:g_ptr_array_new
fun:gtk_widget_class_add_action
}
{
GIO modules
Memcheck:Leak
match-leak-kinds: definite
fun:calloc
...
fun:_g_io_module_get_default
}
{
GTK media extension gio modules
Memcheck:Leak
match-leak-kinds: definite
fun:calloc
...
fun:g_io_module_new
...
fun:gtk_media_file_extension_init
}
# AMD driver
{
radeonsi_dri general
Memcheck:Leak
fun:calloc
...
obj:/usr/lib*/dri/radeonsi_dri.so
}
{
radeonsi_dri general
Memcheck:Leak
fun:malloc
2019-07-11 15:31:03 +00:00
...
obj:/usr/lib*/dri/radeonsi_dri.so
}
# mesa driver stuff
{
i965 addr4
Memcheck:Addr4
obj:/usr/lib*/dri/i965_dri.so*
}
{
i965 addr8
Memcheck:Addr8
obj:/usr/lib*/dri/i965_dri.so*
}
{
i965 memcpy
Memcheck:Addr8
fun:memcpy*
obj:/usr/lib*/dri/i965_dri.so*
}
{
i965 memcpy
Memcheck:Addr2
fun:memcpy*
obj:/usr/lib*/dri/i965_dri.so*
}
{
mesa memcmp 8
Memcheck:Addr8
fun:*memcmp*
obj:/usr/lib*/dri/i965_dri.so*
}
{
mesa memcmp 1
Memcheck:Addr1
fun:*memcmp*
obj:/usr/lib*/dri/i965_dri.so*
}
{
mesa memset 8
Memcheck:Addr8
fun:*memset*
obj:/usr/lib*/dri/i965_dri.so
}
{
mesa realpath
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:realpath@@GLIBC_2.3
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
fun:epoxy_eglInitialize_global_rewrite_ptr
}
{
mesa calloc
Memcheck:Leak
match-leak-kinds: definite
fun:calloc
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
fun:epoxy_eglInitialize_global_rewrite_ptr
}
{
epoxy strncmp
Memcheck:Addr8
fun:strncmp
...
fun:epoxy_eglInitialize_global_rewrite_ptr
}
{
mesa malloc
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
obj:/usr/lib*/dri/i965_dri.so*
}
{
mesa glReadPixels
Memcheck:Addr16
obj:*
obj:*
obj:*
obj:*
obj:*
fun:epoxy_glReadPixels_global_rewrite_ptr
}
{
epoxy glxQueryServerString 1
Memcheck:Leak
fun:malloc
fun:XextAddDisplay
obj:*
obj:*
obj:*
obj:*
obj:*
fun:epoxy_glXQueryServerString_global_rewrite_ptr
}
{
epoxy glxQueryServerString 2
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:realpath*
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
obj:*
fun:epoxy_glXQueryServerString_global_rewrite_ptr
}
{
epoxy glGetTexImage
Memcheck:Addr16
obj:*
obj:*
obj:*
obj:*
obj:*
fun:epoxy_glGetTexImage_global_rewrite_ptr
}
# Fontconfig
{
FcFontSetList
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
obj:/usr/lib*/libfontconfig.so*
obj:/usr/lib*/libfontconfig.so*
fun:FcFontSetList
}
{
FcPatternObjectInsertElt
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:FcPatternObjectInsertElt
}
{
FcFontRenderPrepare
Memcheck:Leak
match-leak-kinds: definite
fun:realloc
obj:/usr/lib*/libfontconfig.so*
obj:/usr/lib*/libfontconfig.so*
fun:FcFontRenderPrepare
}
{
FcDefaultSubstitute
Memcheck:Leak
match-leak-kinds: definite
fun:realloc
obj:/usr/lib*/libfontconfig.so*
obj:/usr/lib*/libfontconfig.so*
fun:FcDefaultSubstitute
}
# Pixman
{
pixman_image_composite32
Memcheck:Cond
obj:/usr/lib*/libpixman-1.so*
obj:/usr/lib*/libpixman-1.so*
fun:pixman_image_composite32
}
# Pango
{
pango 1
Memcheck:Leak
match-leak-kinds: definite
fun:realloc
obj:/usr/lib*/libfontconfig.so*
obj:/usr/lib*/libfontconfig.so*
obj:/usr/lib*/libcairo.so*
fun:pango_cairo_fc_font_map_fontset_key_substitute
}
{
pango 2
Memcheck:Leak
fun:realloc
obj:/usr/lib*/libfontconfig.so*
obj:/usr/lib*/libfontconfig.so*
fun:_cairo_ft_font_options_substitute
}
# GLib
{
glib GQuark
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
...
fun:g_quark_*
}
{
glib GQuark
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
...
fun:g_intern_static_string
}
{
glib GQuark
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
...
fun:g_intern_string
}
{
xdg-mime init
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
...
fun:xdg_mime_init*
}
{
xdg-mime init
Memcheck:Leak
match-leak-kinds: definite
fun:calloc
...
fun:xdg_mime_init*
}
{
glib init
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
...
fun:glib_init_ctor
}
# Threads
{
pthread
Memcheck:Leak
fun:calloc
fun:_dl_allocate_tls
2019-07-11 15:31:03 +00:00
}