NetworkManager/src/core
Íñigo Huguet 3904135150 wifi: don't recheck auto-activate on disposal
During disposal we're calling to remove_all_aps that in turns schedules
an auto-activate recheck. As the device is removed, this triggers an
assertion when trying to do the recheck.

Fix that by not scheduling the recheck.

Example of backtrace that this commits fix:
  0  __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:47
  1  0xf746e270 in __pthread_kill_implementation (threadid=<optimized out>, signo=6, no_tid=<optimized out>) at pthread_kill.c:43
  2  0xf743fbc6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
  3  0xf7431614 in __GI_abort () at abort.c:79
  4  0xf775afea in g_assertion_message (domain=domain@entry=0x209a9f "nm", file=file@entry=0x1f7d59 "../NetworkManager-1.43.7/src/core/nm-policy.c", line=line@entry=1665,
     func=func@entry=0x1f94d9 <__func__.6> "nm_policy_device_recheck_auto_activate_schedule",
     message=message@entry=0x1d3e950 "assertion failed: (g_signal_handler_find(device, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, NM_POLICY_GET_PRIVATE(self)) != 0)")
     at ../glib-2.72.3/glib/gtestutils.c:3253
  5  0xf775b05e in g_assertion_message_expr (domain=0x209a9f "nm", file=0x1f7d59 "../NetworkManager-1.43.7/src/core/nm-policy.c", line=1665,
     func=0x1f94d9 <__func__.6> "nm_policy_device_recheck_auto_activate_schedule",
     expr=0x1f8afc "g_signal_handler_find(device, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, NM_POLICY_GET_PRIVATE(self)) != 0") at ../glib-2.72.3/glib/gtestutils.c:3279
  6  0x0005f27a in nm_policy_device_recheck_auto_activate_schedule (self=0x1d3e950, device=0x209a9f) at ../NetworkManager-1.43.7/src/core/nm-policy.c:1679
  7  0x000548ae in nm_manager_device_recheck_auto_activate_schedule (self=<optimized out>, device=<optimized out>) at ../NetworkManager-1.43.7/src/core/nm-manager.c:3113
  8  0x00070622 in nm_device_recheck_auto_activate_schedule (self=<optimized out>) at ../NetworkManager-1.43.7/src/core/devices/nm-device.c:9249
  9  0xf693aa8c in ap_add_remove (self=self@entry=0x1ceb0b0, is_adding=0, ap=<optimized out>, recheck_available_connections=0)
     at ../NetworkManager-1.43.7/src/core/devices/wifi/nm-device-wifi.c:846
  10 0xf693bcda in remove_all_aps (self=self@entry=0x1ceb0b0) at ../NetworkManager-1.43.7/src/core/devices/wifi/nm-device-wifi.c:863
  11 0xf693f83c in dispose (object=0x1ceb0b0) at ../NetworkManager-1.43.7/src/core/devices/wifi/nm-device-wifi.c:3809
  12 0xf7806e72 in g_object_unref (_object=<optimized out>) at ../glib-2.72.3/gobject/gobject.c:3636
  13 g_object_unref (_object=0x1ceb0b0) at ../glib-2.72.3/gobject/gobject.c:3553
  14 0x000f7fa4 in _nm_dbus_object_clear_and_unexport (location=location@entry=0xffa50644) at ../NetworkManager-1.43.7/src/core/nm-dbus-object.c:203
  15 0x000576e4 in remove_device (self=self@entry=0x1c9c900, device=<optimized out>, quitting=quitting@entry=1) at ../NetworkManager-1.43.7/src/core/nm-manager.c:2289
  16 0x0005a864 in nm_manager_stop (self=self@entry=0x1c9c900) at ../NetworkManager-1.43.7/src/core/nm-manager.c:7784
  17 0x00023438 in main (argc=<optimized out>, argv=<optimized out>) at ../NetworkManager-1.43.7/src/core/main.c:530

Fixes: 96f40dcdcd ('wifi/ap: explicitly unexport AP and refactor add/remove AP')
Fixes: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1791
2025-08-27 06:37:33 +00:00
..
devices wifi: don't recheck auto-activate on disposal 2025-08-27 06:37:33 +00:00
dhcp dhcp: fix typo in tcp_keepalive_interval option name 2025-07-10 09:12:02 +02:00
dns dns: return error from nm_dns_uri_parse() 2025-08-14 09:40:26 +02:00
dnsmasq core, libnm: support per-connection DNS URIs 2025-01-07 15:41:44 +01:00
ndisc ndisc: fix logic to limit the number of addresses 2025-07-10 09:12:06 +02:00
platform platform: fix compilation without LTO 2025-07-17 10:30:18 +02:00
ppp core: simplify nm_l3_config_data_add_nameserver_detail() 2025-01-07 15:41:43 +01:00
settings dns: return error from nm_dns_uri_parse() 2025-08-14 09:40:26 +02:00
supplicant supplicant: fix wrong check on "EAP" signal arguments 2025-07-10 09:12:01 +02:00
tests build: add path definition for ip6tables 2025-04-01 08:08:52 +00:00
vpn vpn: fix logging message 2025-03-31 13:39:07 +02:00
main-utils.c core: Fix unextractable translation string 2023-12-18 15:53:16 +01:00
main-utils.h core: move nm_main_utils_get_nm_[ug]id() to "nm-core-utils.h" 2022-01-18 18:10:55 +01:00
main.c core/dbus: "RequestName" of NetworkManager D-Bus API later to fix race 2023-03-23 13:06:57 +01:00
meson.build dns: Add dnsconfd DNS plugin 2025-01-29 14:41:47 +01:00
NetworkManagerUtils.c platform: accept 0 as valid rto_min value 2025-04-14 16:41:39 +02:00
NetworkManagerUtils.h device: simplify the nm_utils_complete_generic() machinery 2025-01-20 06:13:59 +01:00
nm-act-request.c src: drop most master references from the code 2024-08-09 15:47:32 +02:00
nm-act-request.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-active-connection.c core: rename NM_DEVICE_MANAGED_TYPE_MANAGED to _TYPE_FULL 2024-08-28 15:35:56 +02:00
nm-active-connection.h src: drop most master references from the code 2024-08-09 15:47:32 +02:00
nm-audit-manager.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-audit-manager.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-auth-manager.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-auth-manager.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-auth-utils.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-auth-utils.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-bond-manager.c bond-slb: fix memory leak 2025-07-10 09:12:02 +02:00
nm-bond-manager.h bonding: send ARP announcement on bonding-slb link/carrier down 2024-12-18 14:45:54 +01:00
nm-checkpoint-manager.c core: use nm_dbus_manager_lookup_object_with_type() 2022-03-13 12:02:08 +01:00
nm-checkpoint-manager.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-checkpoint.c checkpoint: preserve in-memory state of connections 2024-05-02 16:49:23 +02:00
nm-checkpoint.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-config-data.c dns: Add resolve-mode and certification-authority keys to global-dns 2025-01-29 14:41:47 +01:00
nm-config-data.h dns: Add resolve-mode and certification-authority keys to global-dns 2025-01-29 14:41:47 +01:00
nm-config.c dns: Add resolve-mode and certification-authority keys to global-dns 2025-01-29 14:41:47 +01:00
nm-config.h connectivity: Add a timeout option to connectivity checks 2024-06-24 09:21:34 +00:00
nm-connectivity.c connectivity: fix compiler warning when building without concheck 2025-06-19 15:06:53 +02:00
nm-connectivity.h Updated code format 2024-04-08 06:35:20 +00:00
nm-core-utils.c core: fix Wi-Fi data rate tables 2025-07-10 09:12:03 +02:00
nm-core-utils.h Updated code format 2024-04-08 06:35:20 +00:00
nm-dbus-manager.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-dbus-manager.h core/dbus: split RequestName D-Bus call out of initialization for NMDBusManager 2023-03-23 13:06:57 +01:00
nm-dbus-object.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-dbus-object.h format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-dbus-utils.c dbus: add helper macros for GDBusAnnotationInfo 2024-01-16 09:28:17 +01:00
nm-dbus-utils.h format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-dcb.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-dcb.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-default-daemon.h libnm: move nm-errors.h include away from nm-connection.h 2022-11-13 23:36:37 +01:00
nm-dhcp-config.c all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-dhcp-config.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-dispatcher.c dispatcher: fix serialization of DNS servers 2025-01-07 15:41:45 +01:00
nm-dispatcher.h dispatcher: read device-handler's stdout into a dictionary 2024-02-21 11:16:04 +01:00
nm-firewall-utils.c firewall/utils: replace ipv4 iptables macro with ipxtables macro 2025-04-01 08:08:52 +00:00
nm-firewall-utils.h firewall/wireguard: drop packets received to wrong interface 2025-04-01 08:08:52 +00:00
nm-firewalld-manager.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-firewalld-manager.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-hostname-manager.c hostname: combine implementations of read_hostname() for Gentoo and Slackware 2023-02-08 09:51:25 +01:00
nm-hostname-manager.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-ip-config.c ip-config: fix crash in DNS options evaluation 2025-05-16 09:41:03 +02:00
nm-ip-config.h core: rate-limit updates to IP addresses/routes on D-Bus API 2023-11-30 15:41:43 +01:00
nm-keep-alive.c doc: replace all (allow-none) annotations by (optional) and/or (nullable) 2023-03-27 11:49:43 +02:00
nm-keep-alive.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-l3-config-data.c core: discard non UTF-8 search domains 2025-02-25 09:29:05 +00:00
nm-l3-config-data.h core: simplify nm_l3_config_data_add_nameserver_detail() 2025-01-07 15:41:43 +01:00
nm-l3-ipv4ll.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-l3-ipv4ll.h all: fix various "-Wcast-align=strict" warnings 2022-12-09 09:15:56 +01:00
nm-l3-ipv6ll.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-l3-ipv6ll.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-l3cfg.c dns: return error from nm_dns_uri_parse() 2025-08-14 09:40:26 +02:00
nm-l3cfg.h dns: Add dnsconfd DNS plugin 2025-01-29 14:41:47 +01:00
nm-manager.c manager: add a capability for "sriov.preserve-on-down" 2025-06-30 22:38:18 +02:00
nm-manager.h checkpoint: Allow rollback on internal global DNS 2024-03-13 20:52:37 +08:00
nm-netns.c typo fix: allows to -> allows one to 2025-03-26 19:22:01 +01:00
nm-netns.h core: split nm_netns_watcher_remove_all() 2025-02-24 08:55:53 +01:00
nm-pacrunner-manager.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-pacrunner-manager.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-policy.c core: support prefix-delegation.subnet-id 2025-04-02 11:21:59 +02:00
nm-policy.h core: expose and rename nm_policy_device_recheck_auto_activate_schedule() 2023-04-27 08:35:27 +02:00
nm-power-monitor.c power-monitor: fix "shutdown" signal definition 2024-04-04 11:12:18 +02:00
nm-power-monitor.h connection: add support to down-on-poweroff 2024-03-04 18:16:54 +00:00
nm-priv-helper-call.c nm-sudo: rename to nm-priv-helper 2022-01-11 21:46:55 +01:00
nm-priv-helper-call.h nm-sudo: rename to nm-priv-helper 2022-01-11 21:46:55 +01:00
nm-rfkill-manager.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-rfkill-manager.h platform: remove CSME related code 2023-09-25 11:46:24 +00:00
nm-session-monitor.c all: prefer nm wrappers to automatically attach GSource to default context 2022-03-13 11:59:42 +01:00
nm-session-monitor.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-test-utils-core.h all: replace NMP_IFNAMSIZ with NM_IFNAMSIZ 2023-05-30 08:51:10 +02:00
nm-types.h src: drop most slave references from the code 2024-08-09 15:47:32 +02:00
org.freedesktop.NetworkManager.conf all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
README.l3cfg.md core: rework IP configuration in NetworkManager using layer 3 configuration 2021-11-18 16:21:29 +01:00
README.md all: add some README.md files describing the purpose of our sources 2021-08-19 17:51:11 +02:00
README.next.ip-config.md core: rework IP configuration in NetworkManager using layer 3 configuration 2021-11-18 16:21:29 +01:00

core

The source code of the NetworkManager daemon.

NetworkManager is a daemon that provides a D-Bus API and a file-based API for configuring the network on a Linux host.

This is the daemon source code.