mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-11-05 19:03:31 +00:00
9f1d4b650c
This valgrind error is raised by Ubuntu 23:10, with valgrind 1:3.21.0-0ubuntu1 and glibc 2.38-1ubuntu6: ==141967== Source and destination overlap in memcpy_chk(0x1ffefffe98, 0x1ffefffe92, 8) ==141967== at 0x4851042: __memcpy_chk (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==141967== by 0x502A9CC: memmove (string_fortified.h:36) ==141967== by 0x502A9CC: inet_pton6 (inet_pton.c:226) ==141967== by 0x502A9CC: __inet_pton_length (inet_pton.c:56) ==141967== by 0x502A9CC: inet_pton (inet_pton.c:69) ==141967== by 0x114FA3: nmtst_inet6_from_string_p (nm-test-utils.h:1764) ==141967== by 0x114FA3: _nmtst_assert_ip6_address (nm-test-utils.h:1856) ==141967== by 0x114FA3: test_stable_privacy (test-utils.c:26) ==141967== by 0x4DEC85D: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7800.0) ==141967== by 0x4DEC78A: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7800.0) ==141967== by 0x4DECD2A: g_test_run_suite (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7800.0) ==141967== by 0x4DECE07: g_test_run (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7800.0) ==141967== by 0x4F070CF: (below main) (libc_start_call_main.h:58) ==141967== { <insert_a_suppression_name_here> Memcheck:Overlap fun:__memcpy_chk fun:memmove fun:inet_pton6 fun:__inet_pton_length fun:inet_pton fun:nmtst_inet6_from_string_p fun:_nmtst_assert_ip6_address fun:test_stable_privacy obj:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7800.0 obj:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7800.0 fun:g_test_run_suite fun:g_test_run fun:(below main) } This is because memmove() can call __memcpy_chk(), which triggers the false positive in valgrind. It probably affects other places too, but for us it's sufficient to restrict the valgrind suppression to calls from inet_pton(). This suppression will probably break with LTO enabled. See-also: https://bugs.kde.org/show_bug.cgi?id=402833 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1802
511 lines
9.4 KiB
Text
511 lines
9.4 KiB
Text
# IMPORTANT: these suppressions strongly depend on the used library version.
|
|
# They probably don't work out-of-the-box on anything but Fedora, where they
|
|
# are mainly tested.
|
|
#
|
|
# Make sure to install debug information, otherwise the suppression trace might
|
|
# not match. On Fedora, try 'dnf debuginfo-install glib2'.
|
|
{
|
|
NSS_NoDB_Init
|
|
Memcheck:Leak
|
|
...
|
|
fun:NSS_NoDB_Init
|
|
...
|
|
}
|
|
{
|
|
g_type_init_with_debug_flags
|
|
Memcheck:Leak
|
|
...
|
|
fun:g_type_init_with_debug_flags
|
|
...
|
|
}
|
|
{
|
|
g_type_register_static
|
|
Memcheck:Leak
|
|
...
|
|
fun:g_type_register_static
|
|
...
|
|
}
|
|
{
|
|
g_param_spec_boxed
|
|
Memcheck:Leak
|
|
...
|
|
fun:g_param_spec_boxed
|
|
...
|
|
}
|
|
{
|
|
g_type_add_interface_static
|
|
Memcheck:Leak
|
|
...
|
|
fun:g_type_add_interface_static
|
|
...
|
|
}
|
|
{
|
|
g_signal_type_cclosure_new
|
|
Memcheck:Leak
|
|
...
|
|
fun:g_malloc0
|
|
fun:g_closure_new_simple
|
|
fun:g_signal_type_cclosure_new
|
|
fun:g_signal_new
|
|
...
|
|
}
|
|
{
|
|
dbus_g_value_types_init
|
|
Memcheck:Leak
|
|
fun:realloc
|
|
fun:g_realloc
|
|
fun:g_type_set_qdata
|
|
fun:_dbus_g_value_types_init
|
|
fun:dbus_g_bus_get
|
|
...
|
|
}
|
|
{
|
|
type_iface_vtable_base_init_Wm
|
|
Memcheck:Leak
|
|
fun:malloc
|
|
fun:g_malloc
|
|
fun:g_memdup
|
|
fun:type_iface_vtable_base_init_Wm
|
|
fun:g_type_class_ref
|
|
...
|
|
}
|
|
{
|
|
g_type_create_instance
|
|
Memcheck:Leak
|
|
fun:malloc
|
|
fun:g_malloc
|
|
fun:g_slice_alloc
|
|
fun:g_slice_alloc0
|
|
fun:g_type_create_instance
|
|
fun:g_object_constructor
|
|
...
|
|
}
|
|
{
|
|
g_signal_new_class_handler
|
|
Memcheck:Leak
|
|
...
|
|
fun:g_closure_new_simple
|
|
fun:g_cclosure_new
|
|
fun:g_signal_new_class_handler
|
|
...
|
|
}
|
|
{
|
|
_dl_init_g_type_register_fundamental
|
|
Memcheck:Leak
|
|
...
|
|
fun:g_type_register_fundamental
|
|
...
|
|
fun:_dl_init
|
|
obj:/*/ld-*.so
|
|
}
|
|
{
|
|
_dl_init_g_malloc0
|
|
Memcheck:Leak
|
|
fun:calloc
|
|
fun:g_malloc0
|
|
...
|
|
fun:_dl_init
|
|
obj:/*/ld-*.so
|
|
}
|
|
{
|
|
# added on Fedora 22
|
|
# This happens when setting LD_LIBRARY_PATH and the linker is searching the libraries to load.
|
|
# for example:
|
|
# LD_LIBRARY_PATH=./././././././././././././././././libnm/.libs:./libnm-util/.libs:./libnm-glib/.libs
|
|
_dl_expand_dynamic_string_token
|
|
Memcheck:Cond
|
|
fun:index
|
|
fun:expand_dynamic_string_token
|
|
...
|
|
fun:dl_main
|
|
fun:_dl_sysdep_start
|
|
fun:_dl_start_final
|
|
fun:_dl_start
|
|
obj:/*/ld-*.so
|
|
...
|
|
}
|
|
{
|
|
all_gobject_init_ctor
|
|
Memcheck:Leak
|
|
...
|
|
fun:gobject_init_ctor
|
|
...
|
|
}
|
|
|
|
|
|
# The following suppressions were needed on fc20.armv7hl
|
|
{
|
|
_fun_malloc
|
|
Memcheck:Leak
|
|
match-leak-kinds: possible
|
|
fun:malloc
|
|
}
|
|
{
|
|
_fun_realloc
|
|
Memcheck:Leak
|
|
match-leak-kinds: possible
|
|
fun:realloc
|
|
}
|
|
{
|
|
_fun_calloc
|
|
Memcheck:Leak
|
|
match-leak-kinds: possible
|
|
fun:calloc
|
|
}
|
|
|
|
|
|
{
|
|
_glib_sigaction
|
|
Memcheck:Param
|
|
rt_sigaction(act->sa_flags)
|
|
fun:__libc_sigaction
|
|
fun:unref_unix_signal_handler_unlocked
|
|
fun:g_child_watch_finalize
|
|
fun:g_source_unref_internal
|
|
fun:g_main_context_dispatch
|
|
...
|
|
fun:g_main_loop_run
|
|
...
|
|
}
|
|
|
|
{
|
|
# FIXME: dunny why this is needed. Clean up later.
|
|
_dispatcher_test
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
fun:g_malloc
|
|
fun:g_slice_alloc
|
|
fun:g_variant_new_from_bytes
|
|
fun:g_variant_new_from_trusted
|
|
fun:parse_dhcp
|
|
fun:get_dispatcher_file
|
|
...
|
|
fun:g_test_run_suite_internal
|
|
fun:g_test_run_suite_internal
|
|
fun:g_test_run_suite
|
|
}
|
|
|
|
{
|
|
_gdbus_1
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
fun:g_malloc
|
|
fun:g_slice_alloc
|
|
fun:g_slice_alloc0
|
|
fun:get_dispatch
|
|
fun:g_main_context_dispatch
|
|
...
|
|
fun:g_main_loop_run
|
|
fun:gdbus_shared_thread_func
|
|
fun:g_thread_proxy
|
|
fun:start_thread
|
|
fun:clone
|
|
}
|
|
|
|
{
|
|
_gdbus_2
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
fun:g_malloc
|
|
fun:g_slice_alloc
|
|
fun:g_slice_alloc0
|
|
fun:g_main_context_push_thread_default
|
|
fun:gdbus_shared_thread_func
|
|
fun:g_thread_proxy
|
|
fun:start_thread
|
|
fun:clone
|
|
}
|
|
|
|
{
|
|
_gdbus_3
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:calloc
|
|
fun:g_malloc0
|
|
fun:_g_socket_read_with_control_messages
|
|
fun:_g_dbus_worker_do_read_unlocked
|
|
fun:_g_dbus_worker_do_read_cb
|
|
fun:g_simple_async_result_complete
|
|
fun:complete_in_idle_cb
|
|
...
|
|
fun:g_main_context_dispatch
|
|
...
|
|
fun:g_main_loop_run
|
|
fun:gdbus_shared_thread_func
|
|
fun:g_thread_proxy
|
|
}
|
|
|
|
{
|
|
_gdbus_4
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:calloc
|
|
fun:g_malloc0
|
|
...
|
|
fun:g_slice_alloc
|
|
fun:g_slice_alloc0
|
|
fun:g_main_context_push_thread_default
|
|
fun:gdbus_shared_thread_func
|
|
fun:g_thread_proxy
|
|
fun:start_thread
|
|
fun:clone
|
|
}
|
|
|
|
{
|
|
_gdbus_5
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
...
|
|
fun:g_dbus_message_new_from_blob
|
|
...
|
|
}
|
|
|
|
{
|
|
_gdbus_9
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
fun:g_malloc
|
|
fun:g_slice_alloc
|
|
fun:g_slice_alloc0
|
|
fun:get_dispatch
|
|
fun:g_main_current_source
|
|
fun:g_task_return
|
|
fun:g_task_thread_pool_thread
|
|
fun:g_thread_pool_thread_proxy
|
|
fun:g_thread_proxy
|
|
fun:start_thread
|
|
fun:clone
|
|
}
|
|
|
|
{
|
|
_gdbus_10
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
fun:g_malloc
|
|
fun:g_slice_alloc
|
|
fun:g_slice_alloc0
|
|
fun:g_system_thread_new
|
|
fun:g_thread_new_internal
|
|
...
|
|
fun:g_thread_pool_push
|
|
...
|
|
fun:g_task_run_in_thread
|
|
fun:g_async_initable_real_init_async
|
|
fun:g_bus_get
|
|
...
|
|
}
|
|
|
|
{
|
|
_gdbus_11
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:calloc
|
|
fun:g_malloc0
|
|
...
|
|
fun:g_slice_alloc
|
|
fun:g_slice_alloc0
|
|
fun:get_dispatch
|
|
fun:g_main_current_source
|
|
fun:g_task_return
|
|
fun:g_task_thread_pool_thread
|
|
fun:g_thread_pool_thread_proxy
|
|
fun:g_thread_proxy
|
|
fun:start_thread
|
|
}
|
|
|
|
{
|
|
_gdbus_12
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
fun:g_malloc
|
|
fun:g_slice_alloc
|
|
fun:g_error_new_valist
|
|
fun:g_error_new
|
|
fun:g_dbus_error_new_for_dbus_error
|
|
fun:g_dbus_error_set_dbus_error
|
|
fun:g_dbus_message_to_gerror
|
|
fun:decode_method_reply
|
|
fun:g_dbus_connection_call_sync_internal
|
|
fun:g_dbus_proxy_call_sync_internal
|
|
fun:g_dbus_proxy_call_sync
|
|
}
|
|
|
|
{
|
|
_gdbus_15
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
fun:g_malloc
|
|
fun:g_slice_alloc
|
|
fun:g_hash_table_new_full
|
|
fun:demarshal_map
|
|
fun:_dbus_gvalue_demarshal
|
|
fun:dbus_g_proxy_end_call_internal
|
|
fun:dbus_g_proxy_end_call
|
|
fun:get_permissions_reply
|
|
fun:complete_pending_call_and_unlock
|
|
fun:dbus_connection_dispatch
|
|
fun:message_queue_dispatch
|
|
}
|
|
|
|
{
|
|
_gdbus_16
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:calloc
|
|
fun:g_malloc0
|
|
fun:_g_dbus_worker_send_message
|
|
fun:g_dbus_connection_send_message_unlocked
|
|
fun:unsubscribe_id_internal
|
|
fun:g_dbus_connection_signal_unsubscribe
|
|
fun:g_dbus_proxy_finalize
|
|
...
|
|
}
|
|
|
|
{
|
|
_gdbus_17
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:calloc
|
|
fun:g_malloc0
|
|
fun:thread_memory_from_self
|
|
fun:g_slice_alloc
|
|
fun:g_slice_alloc0
|
|
fun:g_main_context_push_thread_default
|
|
fun:gdbus_shared_thread_func
|
|
fun:g_thread_proxy
|
|
fun:start_thread
|
|
fun:clone
|
|
}
|
|
|
|
{
|
|
_gdbus_18
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
fun:g_malloc
|
|
fun:g_slice_alloc
|
|
fun:g_slice_alloc0
|
|
fun:get_dispatch
|
|
fun:g_main_dispatch
|
|
fun:g_main_context_dispatch
|
|
...
|
|
fun:g_main_loop_run
|
|
fun:gdbus_shared_thread_func
|
|
fun:g_thread_proxy
|
|
fun:start_thread
|
|
fun:clone
|
|
}
|
|
{
|
|
_gdbus_f21_1
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
...
|
|
fun:_g_dbus_worker_send_message
|
|
fun:g_dbus_connection_send_message_unlocked
|
|
...
|
|
fun:g_dbus_proxy_finalize
|
|
...
|
|
}
|
|
{
|
|
_gdbus_f23_1
|
|
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*
|
|
fun:g_object_new
|
|
fun:g_task_new
|
|
fun:_g_socket_read_with_control_messages
|
|
fun:_g_dbus_worker_do_read_unlocked
|
|
fun:_g_dbus_worker_do_read_cb
|
|
fun:g_task_return_now
|
|
...
|
|
fun:g_main_dispatch
|
|
fun:g_main_context_dispatch
|
|
fun:g_main_context_iterate.isra.*
|
|
fun:g_main_loop_run
|
|
fun:gdbus_shared_thread_func
|
|
fun:g_thread_proxy
|
|
fun:start_thread
|
|
fun:clone
|
|
}
|
|
{
|
|
_gdbus_f25_1
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
fun:g_malloc
|
|
fun:g_slice_alloc
|
|
fun:g_slice_alloc0
|
|
fun:g_system_thread_new
|
|
fun:g_thread_new_internal
|
|
fun:g_thread_new
|
|
fun:g_get_worker_context
|
|
fun:g_task_thread_pool_init
|
|
fun:g_task_get_type
|
|
fun:ensure_required_types
|
|
...
|
|
fun:g_bus_get_sync
|
|
}
|
|
{
|
|
_gdbus_f25_2
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
...
|
|
fun:g_dbus_proxy_new_sync
|
|
fun:initable_init
|
|
fun:async_init_thread
|
|
fun:g_task_thread_pool_thread
|
|
fun:g_thread_pool_thread_proxy
|
|
fun:g_thread_proxy
|
|
fun:start_thread
|
|
fun:clone
|
|
}
|
|
{
|
|
_gdbusobjectmanager_f25_1
|
|
Memcheck:Leak
|
|
match-leak-kinds: definite
|
|
fun:malloc
|
|
fun:g_malloc
|
|
fun:g_slice_alloc
|
|
fun:g_slice_alloc0
|
|
fun:g_system_thread_new
|
|
fun:g_thread_new_internal
|
|
fun:g_thread_pool_start_thread.part.1
|
|
fun:g_thread_pool_start_thread
|
|
fun:g_thread_pool_push
|
|
fun:g_task_run_in_thread
|
|
fun:g_async_initable_real_init_async
|
|
fun:g_async_initable_new_valist_async
|
|
fun:g_async_initable_new_async
|
|
fun:g_dbus_object_manager_client_new_for_bus
|
|
}
|
|
{
|
|
_btrfs_io_clone
|
|
Memcheck:Param
|
|
ioctl(generic)
|
|
fun:ioctl
|
|
fun:btrfs_reflink_with_progress
|
|
...
|
|
}
|
|
{
|
|
_memmove_overlap
|
|
Memcheck:Overlap
|
|
fun:__memcpy_chk
|
|
fun:memmove
|
|
fun:inet_pton6
|
|
fun:__inet_pton_length
|
|
fun:inet_pton
|
|
...
|
|
}
|