diff --git a/debian/changelog b/debian/changelog index 0d2554fe..8979db18 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +systemd (255.2-4deepin68) unstable; urgency=medium + + * network: also drop reference for DHCP server address when freeing an Address object + + -- deepin-ci-robot Thu, 03 Sep 2026 08:46:25 +0800 + systemd (255.2-4deepin67) unstable; urgency=medium * core/dbus: do not flush a user manager's bus that is not RUNNING diff --git a/debian/patches/fix-network-drop-dhcp-server-address-reference.patch b/debian/patches/fix-network-drop-dhcp-server-address-reference.patch new file mode 100644 index 00000000..a4553579 --- /dev/null +++ b/debian/patches/fix-network-drop-dhcp-server-address-reference.patch @@ -0,0 +1,23 @@ +From 8ae3a4f5e282a1fb024e7bb5d6cf1b83037a2395 Mon Sep 17 00:00:00 2001 +From: Yu Watanabe +Date: Sat, 23 Dec 2023 01:21:22 +0900 +Subject: [PATCH] network/address: also drop reference for DHCP server address + +The Address object should never freed after it is referenced. +So, this should not change any behavior. Just for safety. + +diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c +index bcd3ae6621..629c4d697f 100644 +--- a/src/network/networkd-address.c ++++ b/src/network/networkd-address.c +@@ -201,6 +201,9 @@ Address *address_free(Address *address) { + if (address->network) { + assert(address->section); + ordered_hashmap_remove(address->network->addresses_by_section, address->section); ++ ++ if (address->network->dhcp_server_address == address) ++ address->network->dhcp_server_address = NULL; + } + + if (address->link) { + diff --git a/debian/patches/series b/debian/patches/series index 5a31e4c8..0cd1ce60 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -72,3 +72,4 @@ fix-resolved-reduce-dnssec-transactions.patch fix-sd-journal-reduce-fstat-and-immutable-flag.patch fix-sysusers-gracefully-handle-existing-group-in-gshadow.patch fix-dbus-skip-flush-when-bus-not-running.patch +fix-network-drop-dhcp-server-address-reference.patch